EDA技术与数字系统设计 尹常永 第7章 设计实例

上传人:E**** 文档编号:89347685 上传时间:2019-05-23 格式:PPT 页数:165 大小:1,016.50KB
返回 下载 相关 举报
EDA技术与数字系统设计  尹常永 第7章  设计实例_第1页
第1页 / 共165页
EDA技术与数字系统设计  尹常永 第7章  设计实例_第2页
第2页 / 共165页
EDA技术与数字系统设计  尹常永 第7章  设计实例_第3页
第3页 / 共165页
EDA技术与数字系统设计  尹常永 第7章  设计实例_第4页
第4页 / 共165页
EDA技术与数字系统设计  尹常永 第7章  设计实例_第5页
第5页 / 共165页
点击查看更多>>
资源描述

《EDA技术与数字系统设计 尹常永 第7章 设计实例》由会员分享,可在线阅读,更多相关《EDA技术与数字系统设计 尹常永 第7章 设计实例(165页珍藏版)》请在金锄头文库上搜索。

1、第7章 设计实例,实例1 设计3-8译码器 实例2 设计BCD-七段显示译码器 实例3 设计计数器 实例4 设计模拟74LSl60计数器 实例5 设计交通灯控制器 实例6 设计乒乓球游戏机 实例7 设计扫描数码显示器 实例8 数字频率计的设计 实例9 设计数字钟 实例10 正弦信号发生器,实例1 设计3-8译码器,一、目的 (1) 设计一个3-8译码器; (2) 学习用VHDL进行逻辑描述; (3) 学习设计仿真工具的使用方法。 二、说明 本设计实现一个3-8译码器,其逻辑功能如表7.1所示。,表7.1 3-8译码器的逻辑功能表,三、设计要求 (1) 要求用VHDL编写3-8译码器; (2)

2、设计输入波形文件,并进行模块功能的仿真; (3) 编程并实验验证; (4) 更改设计,现场设计3-6译码器。 四、总结报告要求 (1) 写出VHDL文件; (2) 写出测试向量文件; (3) 写出仿真和测试结果。,附1.1:3-8译码器的程序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; -库的说明 ENTITY yima38a IS PORT(A:IN STD_LOGIC_VECTOR(2 DOWNTO 0); Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

3、 -定义端口,3-8译码器有3个输入8个输出 END; ARCHITECTURE BEHAVIOR OF yima38a IS,BEGIN PROCESS(A) -为A敏感信号 BEGIN CASE A IS WHEN“000“=YYYYYYYY=“10000000“;,WHEN OTHERS=Y=“00000000“; -CASE对应于真值表 END CASE; END PROCESS; END BEHAVIOR; 附1.2:引脚分配见表7.2(对于FLEX10K10器件)。,表7.2 3-8译码器的引脚分配,实例2 设计BCD-七段显示译码器,一、目的 (1) 设计BCD-七段显示译码器,

4、并在实验板上验证; (2) 学习层次化的设计方法。,二、说明 本设计实现一个BCD-七段显示译码器,设计时用按键作为输入,用一个数码管进行显示。 本设计只使用一个数码管,选通第1个数码管。 层次化设计是数字系统设计常用的设计方法。根据图形和硬件描述语言的特点,在层次化设计中,往往在顶层用电路图说明连接和I/O关系,在底层用VHDL语言描述模块的逻辑功能。本设计要求画出顶层电路图,编写BCD-七段显示译码器的VHDL文件,并且建立一个元件符号。,三、设计要求 (1) 画出顶层原理图,并为BCD-七段显示译码器建立一个元件符号; (2) 用VHDL语言描述BCD-七段显示译码器; (3) 设计输入

5、信号波形,并进行设计仿真; (4) 编程并进行实验验证。,四、总结报告要求 (1) 画出原理图并写出VHDL文件; (2) 写出仿真和测试结果。 附2.1:BCD-七段显示译码的程序。 本实验实现一个七段LED显示译码电路,如图7.1所示。,图7.1 BCD-七段显示译码的结构图,程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DEC7S1 IS PORT( CLK: IN STD_LOGIC; LED7S: OUT STD_LOGIC_VECTOR(6 DOWNT

6、O 0); EN: OUT STD_LOGIC); END DEC7S1;,ARCHITECTURE BEHAVE OF DEC7S1 IS SIGNAL CNT4B: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF CNT4B9 THEN CNT4B=CNT4B+1; ELSE CNT4B=“0000“; END IF; END IF;,END PROCESS; PROCESS(CNT4B) BEGIN CASE CNT4B(3 DOWNTO 0) IS WHEN “00

7、00“ = LED7S LED7S LED7S LED7S LED7S =“1100110“;,WHEN “0101“ = LED7S LED7S LED7S LED7S LED7S LED7S =“0000000“; END CASE; END PROCESS; EN=0; END BEHAVE; 附2.2:引脚分配见表7.3(对于FLEX10K10器件)。,表7.3 BCD-七段显示译码器的引脚分配,实例3 设 计 计 数 器,一、目的 (1) 实现带计数允许和复位端的十进制、六进制和 100进制计数器; (2) 掌握计数器类型模块的描述方法; (3) 体会ISP技术的优点。,二、说明 计

8、数器是数字电路系统中最基本的功能模块之一。设计十进制、六进制和100进制计数器,要求计数器有计数允许和复位输入及进位输出功能。计数时钟可以用2 Hz信号,用LED显示计数值。 本设计要求用仿真和测试两种手段来验证计数器的功能。实验时,可以通过修改十进制计数器的设计得到六进制、100进制计数器。,三、设计要求 (1) 设计带计数允许和复位输入的十进制计数器,要求完成顶层电路图和底层VHDL文件; (2) 进行功能仿真; (3) 下载并验证计数器功能; (4) 按上述步骤设计六进制和100进制计数器; (5) 为上述设计建立元件符号。,四、总结报告要求 (1) 画出原理图,并写出VHDL文件; (

9、2) 打印元件符号和仿真波形; (3) 写出资源报告。 附3.1:十进制计数器。 (1) 顶层电路图如图7.2所示。 (2) 引脚分配见表7.4(对于FLEX10K10器件)。,图7.2 十进制计数器的顶层电路图,表7.4 十进制计数器的引脚分配,(3) 十进制计数器的程序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10a IS PORT(CLK,RST,ENA:IN STD_LOGIC; COUNT:OUT STD_LOGIC_VECTOR(3 DOWNTO

10、 0); OUTY: OUT STD_LOGIC); END cnt10a;,ARCHITECTURE beha OF cnt10a IS SIGNAL c1:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,RST,ENA) BEGIN IF(RST=1)THEN c1=“0000“; ELSIF(CLKEVENT AND CLK=1)THEN IF ENA=1 THEN c1=c1+1;,IF (c1=“1001“) THEN c1=“0000“; END IF; END IF; END IF; END PROCESS; PROCESS(CLK

11、) BEGIN IF CLKEVENT AND CLK=1 THEN IF c1=“1001“ THEN OUTY=1; ELSE OUTY=0;,END IF; END IF; COUNT=c1; END PROCESS; END beha;,(4) 七段译码(DECL7S2)的程序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DECL7S2 IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); EN: OUT S

12、TD_LOGIC); END;,ARCHITECTURE ONE OF DECL7S2 IS BEGIN PROCESS(A) BEGIN CASE A(3 DOWNTO 0) IS WHEN “0000“ = LED7S LED7S LED7S LED7S =“1001111“;,WHEN “0100“ = LED7S LED7S LED7S LED7S LED7S LED7S NULL; END CASE; END PROCESS; EN=0; END;,(1) 顶层电路图如图7.3所示。 (2) 引脚分配见表7.5(对于FLEX10K10器件)。,图7.3 100进制计数器顶层电路图,表

13、7.5 100进制计数器的引脚分配,(3) 十进制计数器的程序同附3.1。 (4) SCAN2A的程序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SCAN2A IS PORT(CLK_SCAN: IN STD_LOGIC; EN:OUT STD_LOGIC; NO1_BCD,NO2_BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);,SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT:OUT STD_LOGIC

14、_VECTOR(6 DOWNTO 0); END SCAN2A; ARCHITECTURE BEHAVE OF SCAN2A IS SIGNAL S1:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL BCD_OUT:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN,PROCESS(CLK_SCAN) BEGIN IF CLK_SCANEVENT AND CLK_SCAN=1 THEN IF S1“001“ THEN S1=S1+1; ELSE S1=“000“; END IF; END IF; END PROCESS; PROCESS(S1),B

15、EGIN CASE S1 IS WHEN“000“=BCD_OUTBCD_OUTBCD_OUT=“0000“; END CASE; END PROCESS; PROCESS(BCD_OUT) BEGIN,CASE BCD_OUT IS WHEN“0000“=DOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUT=“1111001“;,END CASE; END PROCESS; EN=0; SEL=S1; END BEHAVE;,实例4 设计模拟74LS160计数器,一、目的 (1) 模拟74LS160计数器的功能; (2) 用仿真手段验证设计; (3) 建立

16、一个74LS160器件的元件符号。,二、说明 本设计模拟74LS160计数器的功能。74LS160是一个十进制计数器,它具有计数允许、复位和预置数据功能。74LS160的逻辑功能说明如表7.6所示。,表7.6 74LS160的逻辑功能表,三、设计要求 (1) 设计一个类似74LS160的模块; (2) 用仿真手段验证设计; (3) 建立一个74LS160的模块符号。 四、总结报告要求 (1) 写出源文件(原理图或VHDL文件); (2) 画出仿真波形; (3) 画出元件符号。,附4.1:74LS160的程序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10e IS PORT(CLK,RST,ENA,PEST:IN STD_LOGIC; W:IN STD_LOGIC_VECTOR(3 DOWNTO 0); COUNT:OUT STD_LOGIC_VECTOR(3 DOWN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号