当前位置:首页 > 实验三 基于Quartus II的硬件描述语言电路设计
实验三 基于Quartus II的硬件描述语言电路设计 1、 实验要求
(1)学习并掌握硬件描述语言(VHDL或Verilog HDL); 熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。参考“参考内容1”中给出的与门源程序,编写一个异或门逻辑电路。
用Quartus II波形仿真验证;下载到DE0开发板验证。 (2)熟悉中规模器件译码器的逻辑功能,用硬件描述语言。实现其设计。参考“参考内容2”中给出的将8421BCD码转换成0-9的七段码译码器源程序,编写一个将二进制码转换成0-F的七段码译码器。
用Quartus II波形仿真验证;下载到DE0开发板,利用开发板上的数码管验证。
(3)熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。参考“参考内容3”中给出的四位二进制加减计数器的源程序,编写一个计数器。
用Quartus II波形仿真验证;下载到DE0开发板验证。 (4)熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。参考“参考内容4”中给出的50M分频器的源程序,编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz。
下载到DE0开发板验证。
(5)扩展内容:利用已经实现的VLDH模块文件,采用原理图方法,实现0-F计数自动循环显示,频率10Hz。 2、实验内容
(1)异或门逻辑的VHDL源文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY exa3_1 IS
PORT(A,B:IN STD_LOGIC; C:OUT STD_LOGIC); END exa3_1;
ARCHITECTURE fwm OF exa3_1 IS BEGIN
C<=A XOR B; END;
(2)二进制码转换为0-F七段码译码器的VHDL源文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY exa3_2 IS
PORT(data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0); dis_out:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END exa3_2;
ARCHITECTURE fwm OF exa3_2 IS BEGIN
PROCESS(data_in) BEGIN
CASE data_in IS
WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\
WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ END CASE; END PROCESS; END fwm;
(3)计数器的VHDL的源代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY jishuqi_jia IS PORT(clk,RST:IN STD_LOGIC;
DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); COUT:OUT STD_LOGIC); END jishuqi_jia;
ARCHITECTURE fwm OF jishuqi_jia IS SIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);
--SIGNAL dis_out:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL clk1:STD_LOGIC;
CONSTANT m:INTEGER:=25000000;--1Hz BEGIN
PROCESS(clk,clk1,RST)
VARIABLE cout1:INTEGER:=0; BEGIN
IF clk'EVENT AND clk='1'THEN cout1:=cout1+1;
IF cout1<=m THEN clk1<='0';
ELSIF cout1<=m*2 THEN clk1<='1'; ELSE cout1:=0; END IF; END IF;
IF RST='0'THEN Q1<=(OTHERS=>'0');COUT<='0'; ELSIF clk1'EVENT AND clk1='1' THEN Q1<=Q1+1; COUT<='0';
IF Q1>=\THEN Q1<=(OTHERS=>'0');COUT<='1'; END IF; END IF; CASE Q1 IS
WHEN\
WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\WHEN\END CASE; END PROCESS; --DOUT<=dis_out; END fwm;
(4)分频器的VHDL的源代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY exa3_4 IS
PORT(clk1:IN STD_LOGIC; clk_out1:OUT STD_LOGIC); END exa3_4 ;
ARCHITECTURE fwm OF exa3_4 IS
CONSTANT m1 : INTEGER:= 25000000; SIGNAL tmp1 :STD_LOGIC;
BEGIN
PROCESS(clk1,tmp1)
VARIABLE cout : INTEGER:=0; BEGIN
IF clk1'EVENT AND clk1='1' THEN cout:=cout+1;
IF cout<=m1 THEN tmp1<='0';
ELSIF cout END PROCESS; clk_out1<=tmp1;
共分享92篇相关文档