实验三基于Quartus II的硬件描述语言电路设计 pdf

更新时间:2023-11-09 19:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

一、实验要求 ......................................................................................................................................................... 2

二、参考内容 ......................................................................................................................................................... 3

1.与门逻辑的 VHDL 的源文件 ................................................................ 3

2.四位二进制数转换成七段数码管显示的译码器 VHDL 的源文件。 . 3

3.四位二进制器加减计数器 VHDL 的源文件。 .................................... 4

4. 50M 分频器的 VHDL 源文件 .............................................................. 5

5. 由 VHDL 文件生成逻辑原理框图方法 ............................................... 5

三、实验开发板 DE0 的基本使用 .............................. 7

一、实验要求(四学时 两周完成全部项目验收)

要求 1:学习并掌握硬件描述语言(VHDL 或 Verilog HDL);熟悉门电路的逻辑

功能,并用硬件描述语言实现门电路的设计。参考“参考内容 1”中给出的与门

源程序,编写一个异或门逻辑电路。1)用 QuartusII 波形仿真验证;2)下载到

DE0 开发板验证。

要求 2:熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。参考

“参考内容 2”中给出的将 8421BCD 码转换成 0-9 的七段码译码器源程序,编写

一个将二进制码转换成 0-F 的七段码译码器。1)用 QuartusII 波形仿真验证;2)

下载到 DE0 开发板,利用开发板上的数码管验证。

要求 3:熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。参考“参

考内容 3”中给出的四位二进制加减计数器的源程序,编写一个计数器。1)用

QuartusII 波形仿真验证;2)下载到 DE0 开发板验证。

要求 4:熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。参考“参考

内容 4”中给出的 50M 分频器的源程序,编写一个能实现占空比 50%的 5M 和 50M

分频器即两个输出,输出信号频率分别为 10Hz 和 1Hz。1)下载到 DE0 开发板验

证。(提示:利用 DE0 板上已有的 50M 晶振作为输入信号,通过开发板上两个的

LED 灯观察输出信号)。电路框图如下:

50M时钟

5M和50M LED1,10赫兹闪烁

分频 LED2,1赫兹闪烁

扩展内容:利用已经实现的 VHDL 模块文件,采用原理图方法,实现 0-F 计数自动

循环显示,频率 10Hz。(提示:如何将 VHDL 模块文件在逻辑原理图中应用,参

考参考内容 5)

注:每组的实验结果必须接受实验老师登记验收,回答实验老师根据所

涉及电路的提问。

二、参考内容

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 AND B;

END;

2.8421BCD 转换成七段码译码器 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 STE_LOGIC_VECTOR(6 DOWNTO 0)); END exa3_2;

ARCHITECTURE fwm OF exa3_2 IS

BEGIN

PROCESS(data_in)

BEGIN

CASE data_in IS

WHEN”0000”=>dis_out<=”1000000”;--显示 0

WHEN”0001”=>dis_out<=”1111001”;--显示 1

WHEN”0010”=>dis_out<=”0100100”;--显示 2

WHEN”0011”=>dis_out<=”0110000”;--显示 3

WHEN”0100”=>dis_out<=”0011001”;--显示 4

WHEN”0101”=>dis_out<=”0010010”;--显示 5

WHEN”0110”=>dis_out<=”0000010”;--显示 6

WHEN”0111”=>dis_out<=”1111000”;--显示 7

WHEN”1000”=>dis_out<=”0000000”;--显示 8

WHEN”1001”=>dis_out<=”0010000”;--显示 9

WHEN OTHERS=> dis_out<=”1111111”;--灭灯,不显示

END CASE;

END PROCESS;

END fwm;

3. 带一个清零端,一个进位输出端十进制器计数器的 VHDL 源文件

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY exa3_3 IS

PORT ( clk,RST : IN STD_LOGIC;

DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); 四位计数 COUT : OUT STD_LOGIC); 进位位

END exa3_3;

ARCHITECTURE fwm OF exa3_3 IS

SIGNAL Q1 : STD_LOGIC_VECTOR (3 DOWNTO 0);

BEGIN

PROCESS(clk,RST)

BEGIN

IF RST = '0' THEN Q1<=(OTHERS => '0'); COUT<= '0';

ELSIF clk’EVENT AND clk=’1’ THEN

Q1<=Q1+1;

COUT<= '0';

IF Q1 >= \

END IF;

END IF;

END PROCESS;

DOUT<=Q1 ;

END fwm;

4. 50M 分频器的 VHDL 源文件

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY exa3_4 IS

PORT(clk:IN STD_LOGIC; clk_out:OUT STD_LOGIC); END exa3_4;

ARCHITECTURE fwm OF exa3_4 IS CONSTANT m : INTEGER:= 25000000; --50M 分频到 1Hz 时=25000000。

SIGNAL tmp :STD_LOGIC;

BEGIN

PROCESS(clk, tmp)

VARIABLE cout : INTEGER:=0;

BEGIN

IF clk'EVENT AND clk='1' THEN

cout:=cout+1; --计数器+1 IF cout<=m THEN tmp<='0'; --计数小于等于 25000000,输出 0

ELSIF cout

END IF;

END IF;

END PROCESS;

--分频器输出 clk_out<=tmp;

END fwm;

5. 由 VHDL 文件生成逻辑原理框图方法

生成逻辑原理框图的方法,File-> Create/Update -> Create Symbol Files for

Current File。如图 1 所示。

本文来源:https://www.bwwdw.com/article/q09v.html

Top