图形及VHDL混合输入的电路设计.doc
文本预览下载声明
图形和 VHDL混合输入的电路设计
一、 实验目的
1、 学习在 QUARTUSII 软件中模块符号文件的生成与调用。
2、 掌握模块符号与模块符号之间的连线规则与方法。
3、 掌握从设计文件到模块符号的创建过程。
二、 实验原理
在层次化的设计文件中,经常需要将已经设计好的工程文件生成一个模块符号文件作为自己的功能模块符号在顶层调用,该符号就像图形设计文件中的任何其它宏功能符号一样可被高层设计重复调用。 本实验的实验原理就是将前面设计的实验三、 四、五通过 QUARTUSII软件合并成一个设计文件。实现实验三、四、五中的所有功能。
三、 实验内容
本实验要求完成的任务与实验三、四、五的实验内容基本一致。在实验中,时钟信号选取 10KHZ 做为数码管的扫描时钟, 拨动开关输入一个预置的十二位数据,经过数控分频电路(实验五)分频后得到一个较低的频率做为加法计数器(实验三)的时钟频率进行计数器的加法运算。得到的值给数码显示译码电路(实验四)在数码管上显示出来。实验箱中的数字时钟模块、拨动开关、按键开关、数码管、LED与 FPGA 的接口电路,以及拨动开关、按键开关、数码管、LED与 FPGA的管脚连接在实验三、四、五中都做了详细说明,这里不在赘述。
四、 实验步骤
1、 打开 QUARTUSII 软件,新建一个工程。
2、 将以前编写的实验三、四、五的源程序代码复制到当前工作目录下保存起来。
3、 选择 FileOpen 命令,如图 6-1 所示,打开复制到当前工作目录下和其中一个
源程序代码:
四分频:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fpin4 is
port(clk: in std_logic;
fp4 : out std_logic);
end;
architecture a of fpin4 is
signal zq: std_logic_vector(1 downto 0);
begin
process(clk)
begin
if clkevent and clk=1 then
zq=zq+1;
if zq=11 then
fp4=1;
else fp4=0;
end if;
end if;
end process;
end;
八分频:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fpin8 is
port(clk: in std_logic;
fp8 : out std_logic);
end;
architecture a of fpin8 is
signal zq: std_logic_vector(2 downto 0);
begin
process(clk)
begin
if clkevent and clk=1 then
zq=zq+1;
if zq=111 then
fp8=1;
else fp8=0;
end if;
end if;
end process;
end;
数码管显示:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity mux41 is
port(q0,q1,q2,q3: in std_logic;
s:in std_logic_vector (1 downto 0);
y : out std_logic);
end;
architecture a of mux41 is
begin
process (q0,q1,q2,q3,s)
begin
if s=00 then y=q3;
elsif s=01 then y=q2;
elsif s=10 then y=q1;
else y=q0;
end if;
end process;
end;
点亮数码管的八个二极管。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt8 is
port(clk: in std_logic;
q : o
显示全部