EDA实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA 实验报告
实验一:组合电路的设计
实验内容是对2选1多路选择器VHDL 设计,它的程序如下:
ENTITY mux21a IS
PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a;
ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d <= a AND (NOT S) ; e <= b AND s ; y <= d OR e ;
END ARCHITECTURE one ;
Mux21a 仿真波形图
以上便是2选1多路选择器的VHDL 完整描述,即可以看成一个元件mux21a 。mux21a 实体是描述对应的逻辑图或者器件图,图中a 和b 分别是两个数据输入端的端口名,s 为通道选择控制信号输入端的端口名,y 为输出端的端口名。Mux21a 结构体可以看成是元件的内部电路图。最后是对仿真得出的mux21a 仿真波形图。
Mux21a 实体
Mux21a 结构体
实验二:时序电路的设计
实验内容D触发器的VHDL语言描述,它的程序如下:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY DFF1 IS
PORT (CLK : IN STD_LOGIC ;
D : IN STD_LOGIC ;
Q : OUT STD_LOGIC );
END ;
D触发器ARCHITECTURE bhv OF DFF1 IS
BEGIN
PROCESS (CLK)
BEGIN
IF CLK'EVENT AND CLK = '1'
THEN Q <= D ;
END IF;
END PROCESS ;
END bhv;
D触发器的仿真波形图
最简单并最具代表性的时序电路是D触发器,它是现代可编程ASIC设计中最基本的时序元件和底层元件。D触发器的描述包含了VHDL对时序电路的最基本和典型的表达方式,同时也包含了VHDL中许多最具特色的语言现象。D触发器元件如上图所示,其在max+plus2的仿真得出上面的波形
实验三:设计含异步清零和同步时钟使能的加法计数器
实验内容一个带有异步复位和同步时钟使能的十进制加法计数器,它的程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10 IS
PORT (CLK,RST,EN:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END CNT10;
ARCHITECTURE behav OF CNT10 IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RST='1'THEN CQI:=(OTHERS=>'0'); --计数器异步复位
ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿
IF EN='1'THEN --检测是否允许计算(同步使能)
IF CQI<9 THEN CQI:=CQI+1; --允许计数,检测是否小于9
ELSE CQI:=(OTHERS=>'0'); --大于9,计数值清零
END IF;
END IF;
END IF;
IF CQI=9 THEN COUT<='1'; --计数大于9,输出进位信号
ELSE COUT<='0';
END IF;
CQ<=CQI; --将计数值向端口输出
END PROCESS;
END behav;
加法计数器的工作时序
程序说明RST是异步清信号,高电平有效;CLK是锁存信号;D[3..0]是4位数据输入端。当EN为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当EN为'0'时将"0000"加载于锁存器.
实验四:用原图输入法设计8位全加器
实验内容:完成半加器和全加器的设计。
实验目的:熟悉利用max+plus2的原理图输入方法设计简单组合电路,掌握层次化设计的方法。
半加器的原理图如下
半加器的时序仿真波形如下:
将半加器的原理图选择File中的Create Default Symbol项,此时即将当前文件变成了一个包装好的单一元件,并被放置在工程路径指定的目录中以备后用。
H_adder
一位全加器的VHDL描述,它的电路图如下
1位全加器的时序仿真波形如下
一位全加器可以由两个半加器和一个或门连接而成。
8位全加器设计原理图
八位全加器的波形仿真如上图
实验五:用原理图输入法设计较复杂数字系统
实验目的:熟悉原理图输入法中74系列等宏功能元件的使用方法,掌握更复杂的原理图层次化设技术和数字系统设计方法。
实验内容:完成2位十进制频率计的设计,并进行仿真测试,给出仿真波形。
实验原理图:
时序仿真波形图:
实验分析:F_IN是待测频率信号,CNT_EN是对待测频率脉冲计数允许信号CNT_EN高电平时允许计数,低电平时禁止计数。仿真波形显示,当CNT_EN为高电平时允许conter8对F_IN计数,低电平时conter8停止计数,由锁存信号LOCK 发出的脉冲,将conter8中的二个4位十进制数锁存进74374中,并由74374分高低位通过总线H[6..0]和L[6..0]输给74248译码输出显示,即测得的频率值。此后由清零信号CLR对计数器conter8清零,以备下一周期计数之用。
实验六:七段数码显示译码器设计
实验目的:学习7段数码显示译码器设计,学习VHDL的CASE语句应用及多层次设计方法。
实验内容:7段数码的程序和其波形方真,它的程序如下:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY DecL7S IS
PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;