硬件描述语言与EDA技术实验指导书 - 图文 联系客服

发布时间 : 星期二 文章硬件描述语言与EDA技术实验指导书 - 图文更新完毕开始阅读549b754d3b3567ec102d8ae6

微电子学课程设计指导书

第二部分:时序逻辑电路设计、仿真和下载验证

实践项目性质:综合训练

所涉及课程:电路分析、数字电子技术基础、硬件描述语言与EDA技术 一、 实践目的:

1. 学习和掌握QuartusII软件的操作;

2. 通过设计24进制的计数器,掌握时序逻辑电路的设计方法; 3. 掌握基于可编程器件的VHDL硬件描述语言的设计方法。 二、 实践步骤: 1. 源程序输入

所有的实践步骤均类同于第一部分。不同之处:第一部分是原理图的设计文件格式.bdf;这一部分是VHDL文本的设计文件格式.vhdl。建立方法:选择File/New/Device Design Files/VHDL File,点击OK同,即可进行VHDL源程序的设计输入。

VHDL参考源程序: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY counter24 IS

PORT(clk1:IN STD_LOGIC;

75

微电子学课程设计指导书

clk100:IN STD_LOGIC;

vga:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sel:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); seg_led:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END counter24;

ARCHITECTURE arch_counter24 of counter24 IS

SIGNAL sa: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL sb: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL bcd: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL scan: STD_LOGIC; BEGIN vga<=\p1:PROCESS(clk1) BEGIN

IF (clk1='1' AND clk1'EVENT) THEN

IF (sa=3 and sb=2) THEN sa<=\sb<=\ELSE

IF sa=9 THEN

sa<=\sb<=sb+1; ELSE

sa<=sa+1; END IF; END IF; END IF; END PROCESS p1; p2:PROCESS(clk100) BEGIN

IF (clk100='1' AND clk100'EVENT) THEN scan<= NOT scan;

76

微电子学课程设计指导书

END IF; END PROCESS p2; p3:PROCESS(scan)

BEGIN CASE scan IS

WHEN '0' => bcd<=sa(3 DOWNTO 0);

sel<=\

WHEN '1' => bcd<=sb(3 DOWNTO 0);

sel<=\

WHEN OTHERS=>bcd<=\

sel<=\

END CASE;

END PROCESS p3; WITH bcd SELECT

seg_led <= \ --0

\ --1 \ --2 \ --3 \ --4 \ --5 \ --6 \ --7 \ --8 \ --9 \ --其它

END arch_counter24; 2. 仿真结果

除了验证输入和输出引脚信号外,要验证中间信号或变量的情况时,打开波形

文件\\Edit\\Insert Node or Bus…\\Node Finder…\\Filter中选择“Design Entry(All names)”,再点击“List”,选择所要观察的信号。本例的仿真结果如下图所示:

77

微电子学课程设计指导书

从上图可以看出,随着计数时钟“clk1”的变化,个位sa从0~9变化,十位sb从0~2变化,但当十位sb为2时,个位sa变到3时,和十位一起回到0,从而实现24进制计数器的功能。随着扫描时钟“clk100”的变化,扫描信号“scan”0~1变化。当“scan”为“0”时,输出“11111110”(低电平有效)使最低位数码管亮,显示“sa”数字;当“scan”为“1”时,输出“11111101”使次低位数码管亮,显示“sb”数字,从而实现数码管的动态扫描。 3. 分配引脚。

记住,对于EL-EDA_VI型实验箱,要求将未分配的管脚置为三态输入:Assignments→Device…→Device→Device & Pin Options…→Unused Pins→Reserve all unused pins:AS input tri-stated。

分配管脚的结果如下图所示。

三、实践接线及说明

功能选择位VGA[3..0]状态为0010,即对应实验箱的右上角的8个数码管,数字总线的低8位BUS_D[7..0]与数码管的7段总和小数点相连,数字总线的高8位

78