Presentation is loading. Please wait.

Presentation is loading. Please wait.

第二篇 实验部分 1.【实验目的】 EDA技术实验的目的是为了进一步巩固EDA技术课程的基本理论,深化对所学课程理论知识的理解,使学生了解和掌握EDA技术中 CPLD/FPGA的体系结构、工作原理、功能和特点;掌握电子线路硬件描述语言(VHDL);初步具备利用CPLD/FPGA芯片设计、开发、调试电子系统的能力;掌握和使用Quartus.

Similar presentations


Presentation on theme: "第二篇 实验部分 1.【实验目的】 EDA技术实验的目的是为了进一步巩固EDA技术课程的基本理论,深化对所学课程理论知识的理解,使学生了解和掌握EDA技术中 CPLD/FPGA的体系结构、工作原理、功能和特点;掌握电子线路硬件描述语言(VHDL);初步具备利用CPLD/FPGA芯片设计、开发、调试电子系统的能力;掌握和使用Quartus."— Presentation transcript:

1 第二篇 实验部分 1.【实验目的】 EDA技术实验的目的是为了进一步巩固EDA技术课程的基本理论,深化对所学课程理论知识的理解,使学生了解和掌握EDA技术中 CPLD/FPGA的体系结构、工作原理、功能和特点;掌握电子线路硬件描述语言(VHDL);初步具备利用CPLD/FPGA芯片设计、开发、调试电子系统的能力;掌握和使用Quartus II开发系统进行电子系统的设计、仿真、测试技术,培养学生综合运用所学知识分析处理工程实际问题的能力,创造性思维能力、自学能力、实践能力、工程实践能力和科学严谨的工作作风。

2 第二篇 实验部分 2. 【实验报告的撰写】 实验报告是实验工作的全面总结和最终成果,要求实验报告能完整而真实的反映实验结果。撰写实验报告要遵守一定规范和要求,即实验报告要书写工整、语句通顺、数据准确并且图表清晰,并能从实验过程的观测中找出问题进行分析和讨论,发表自己的见解。 报告的主要内容

3 第二篇 实验部分 2. 【实验报告的撰写】 (1)实验名称。 (2) 实验目的。 (3) 实验仪器名称、型号。
(4) 实验内容及简要设计(逻辑图、VHDL语言程序、主要实验步骤以及仿真波形等)。 (5)实验分析、体会和结论等。

4 实验1 简单逻辑电路的原理图设计 二. 实验要求 1. 预习教材中的相关内容。 2. 阅读并熟悉本次实验的内容。
实验1 简单逻辑电路的原理图设计 一. 实验目的 1. 学习并掌握Quartus II 开发系统的基本操作。 2. 学习并掌握在Quartus II中原理图设计电路的方法。 3. 掌握在Quartus II中设计简单逻辑电路与仿真的方法。 4. 掌握CPLD/FPGA的开发流程。 5. 掌握EDA实验开发系统的使用。 二. 实验要求 1. 预习教材中的相关内容。 2. 阅读并熟悉本次实验的内容。 3. 用图形输入方式完成电路设计。 4. 分析功能仿真与时序仿真的差别。 5. 下载电路到EDA实验系统验证结果。

5 实验1 简单逻辑电路的原理图设计 三. 实验任务 1. 设计一个2-4译码器并进行仿真、下载验证。
实验1 简单逻辑电路的原理图设计 三. 实验任务 1. 设计一个2-4译码器并进行仿真、下载验证。 (1)2-4线译码器的逻辑线路图,如图11.1所示。 图 线译码器的逻辑线路图 (2)原理图设计、编译和仿真方法与步骤参看第2章第2节。 (3)引脚分配

6 实验1 简单逻辑电路的原理图设计 三. 实验任务 2. 设计一个BCD译码器,进行仿真并下载测试。
实验1 简单逻辑电路的原理图设计 三. 实验任务 2. 设计一个BCD译码器,进行仿真并下载测试。 (1) BCD译码器电路原理图如图11.6所示。 图 BCD译码器电路原理图

7 实验1 简单逻辑电路的原理图设计 三. 实验任务 (2)用图形编辑方法完成电路的输入,以及管脚命名等,具体步骤参看实验内容1的2-4线译码器。 7448输入信号为BCD码,输出端为a、b、c、d、e、f、g共7线,连接共阴数码管的a、b、c、d、e、f、g七段,另有3条控制线接VCC,RBON端为测试端。 (3)电路仿真 建立波形文件,加入节点,完成功能仿真,为了便于分析,将图中单独的端口进行了合并,如图11.7所示,图中数据用16进制显示。时序仿真波形图如图11.8所示,图中数据用2进制显示。

8 实验1 简单逻辑电路的原理图设计 三. 实验任务 (4)下载验证 根据任务1的步骤进行电路下载并进行验证。 五. 实验报告
实验1 简单逻辑电路的原理图设计 三. 实验任务 图 BCD译码器功能仿真波形图 (4)下载验证 根据任务1的步骤进行电路下载并进行验证。 五. 实验报告 1.总结用QuartusII软件开发系统对逻辑电路进行设计、仿真的 操作步骤。 2. 分析实验任务1和任务2的基本原理,并画出仿真波形。 3.讨论用CPLD/FPGA 开发系统进行逻辑电路设计的特点与优越性。

9 实验2 计数器的原理图设计 一. 实验目的 1. 进一步学习并掌握Quartus II 开发系统的基本操作。
实验2 计数器的原理图设计 一. 实验目的 1. 进一步学习并掌握Quartus II 开发系统的基本操作。 2. 掌握利用Quartus II设计电路原理图的方法。 3. 掌握在Quartus II中设计计数器电路与仿真的方法。 4. 掌握CPLD/FPGA的开发流程。 5. 掌握EDA实验开发系统的使用。 二. 实验要求 1. 预习教材中的相关内容。 2. 阅读并熟悉本次实验的内容。 3. 用图形输入方式完成电路设计。 4. 分析功能仿真与时序仿真的差别。 5. 下载电路到EDA实验系统验证结果。

10 实验2 计数器的原理图设计 三. 实验任务 1. 用D触发器设计一个4进制加法计数器并进行仿真、下载验证。
实验2 计数器的原理图设计 三. 实验任务 1. 用D触发器设计一个4进制加法计数器并进行仿真、下载验证。 (1)用D触发器构成的4进制加法计数器如图11.9所示。其中的7474是一个双D触发器。 图 进制加法计数器 (2)用Quartus II软件完成如图11.9所示的电路,建立波形文件并进行仿真。功能仿真波形如图11.10所示。

11 实验2 计数器的原理图设计 (3)下载验证 对4进制加法计数器进行引脚分配再重新编译,下载到EDA实验系统上进行验证。
实验2 计数器的原理图设计 (3)下载验证 对4进制加法计数器进行引脚分配再重新编译,下载到EDA实验系统上进行验证。 图 进制加法计数器功能仿真波形图

12 实验2 计数器的原理图设计 2. 设计一个有时钟使能的2位10计数器 (1)设计电路原理图
实验2 计数器的原理图设计 2. 设计一个有时钟使能的2位10计数器 (1)设计电路原理图 74390是一个双十进制计数器,是频率计的核心元件之一,10进制频率计数器是一个含有时钟使能及进位扩展输出的十进制计数器,为此用74390和其他一些辅助元件来完成。电路原理图如图11.11所示,图中74390连接成两个独立的十进制计数器,待测频率信号clk通过一个与门进入74390的计数器的时钟输入端1CLKA,与门的另一端由计数使能信号enb控制:当enb=‘1’时允许计数;enb=‘0’时禁止计数。计数器1

13 实验2 计数器的原理图设计 的4位输出q[3]、q[2]、q[1]和q[0]并成总线表达方式即q[3..0],由图11.11中的OUTPUT输出端口向外输出计数值,同时由一个4输入与门和两个反相器构成进位信号进入第二个计数器的时钟输入端2CLKA。第二个计数器的4位计数输出是q[7]、q[6]、q[5]和q[4],总线输出信号是q[7..4]。这两个计数器的总的进位信号,即可用于扩展输出的进位信号由一个6输入与门和两个反相器产生,由cout输出,clr是计数器的清零信号。

14 实验2 计数器的原理图设计 图 带有时钟使能的2位10进制计数器

15 实验2 计数器的原理图设计 (2)电路仿真 电路仿真波形如图11.12所示,当clk输入时钟信号时,clr高电平时清零,当enb为高电平时允许计数,当低4位计数器计数到9时,向高4位计数器进位。通过分析发现电路功能完全符合设计要求。 图 带有时钟使能的2位10进制计数器功能仿真波形图

16 实验2 计数器的原理图设计 四. 实验报告 1.总结用QuartusII软件开发系统对逻辑电路进行设计、仿真的操作步骤。
实验2 计数器的原理图设计 四. 实验报告 1.总结用QuartusII软件开发系统对逻辑电路进行设计、仿真的操作步骤。 2. 分析实验任务1和任务2的基本原理,并画出仿真波形,写出下载后输入输出的实验现象。 3.讨论用计数器电路设计的特点。

17 实验3 多路选择器与编码器的VHDL设计 一. 实验目的 1.掌握硬件描述语言描述多路选择器的方法。 2. 掌握硬件描述语言描述编码器的方法
4. 掌握用Quartus II进行文本输入法进行电路设计、编译和仿真方法。 二. 实验要求 1. 预习多路选择器的相关内容。 2. 用VHDL方式完成电路设计。 3. 完成功能仿真与时序仿真。 4. 下载电路到EDA实验系统验证结果。

18 实验3 多路选择器与编码器的VHDL设计 三. 实验任务 1. 设计一个4选1多路选择器
用VHDL设计的4选1多路选择器中,当控制端S=0时多路选择器有效,S=1时禁止工作,输出封锁为低电平。d0,d1,d2,d3分别为四个数据输入端的端口名,a0,a1为通道选择控制信号输入端的端口名,y为输出端的端口名。 (1)4选1多路选择器的VHDL程序 entity mux4_1 is port(d0,d1,d2,d3: in bit; a0,a1,s: in bit; y: out bit); end; architecture one of mux4_1 is signal a: bit_vector(1 downto 0); 接下页

19 实验3 多路选择器与编码器的VHDL设计 Begin --接上页 process(a0,a1) begin a<=a1&a0;
if (s='0') then case a is when "00"=> y <=d0; when "01"=> y <=d1; when "10"=> y <=d2; when "11"=> y <=d3; end case; else y<='0'; end if; end process; end;

20 实验3 多路选择器与编码器的VHDL设计 (2)根据编写的VHDL程序并在Quartus II软件中进行输入、编译和仿真。其功能仿真波形如图11.13所示,通过波形分析符合4选1多路选择器的要求。 图 选1多路选择器的功能仿真波形

21 实验3 多路选择器与编码器的VHDL设计 (3)下载验证
分配引脚并重新编译,打开EDA实验系统的总电源、将4选1多路选择器下载到EDA实验系统,在输入端口输入相应信号,观察输出端口进行验证。 2. 设计一个8-3线优先编码器 设8-3线优先编码器中,a[7..0]为8位输入端,y[2..0]为3 位二进制编码输出端。 (1)8-3线优先编码器的VHDL程序

22 实验3 多路选择器与编码器的VHDL设计 library ieee; --- 8-3线优先编码器
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity youxian 8_3 is port(a:in std_logic_vector(7 downto 0); y:out std_logic_vector(2 downto 0)); end; architecture str of youxian 8_3 is Begin y<="111"when a=" " else "110"when a=" " else "101"when a=" " else "100"when a=" " else "011"when a=" " else "010"when a=" " else "001"when a=" " else "000"when a=" " else "000";

23 实验3 多路选择器与编码器的VHDL设计 (2)根据编写的VHDL程序并在Quartus II软件中进行输入、编译和仿真。其功能仿真波形如图11.14所示,通过波形分析符合8-3线优先编码器的要求。 图 线优先编码器功能仿真波形图 (3)下载验证 分配引脚并重新编译,打开EDA实验系统的总电源、将8-3线优先编码器下载到EDA实验系统,在输入端口输入相应信号,观察输出端口进行验证。

24 实验4 计数器的VHDL设计 一. 实验目的 1.掌握VHDL描述同步与异步计数器的方法。 2. 学习使用VHDL进行时序逻辑电路的设计。
3. 掌握用Quartus II进行文本输入法进行电路设计、编译和仿真方法。 4. 掌握用Quartus II进行层次型电路设计的方法。 5. 学习利用真值表编写VHDL程序。 学习使用RTL工具观察电路图。 三. 实验要求 1. 预习同步与异步计数器的相关内容。 2. 用VHDL方式完成计数器电路设计。 3. 完成计数器电路的仿真。 4. 下载电路到EDA实验系统验证结果。

25 实验4 计数器的VHDL设计 三. 实验任务 1. 同步4位二进制计数器的VHDL设计 (1)实验原理
计数器的逻辑功能用来记忆时钟脉冲的具体个数,通常计数器能记忆时钟的最大数目M称为计数器的模,即计数器的范围是0~(M-1)或(M-1)~0。基本原理是将几个触发器按照一定的顺序连接起来,然后根据触发器的组合状态按照一定的计数规律随着时钟脉冲的变化记忆时钟脉冲的个数。按照计数器

26 实验4 计数器的VHDL设计 各个触发器的时钟是否同步分为同步计数器和异步计数器。表11.1是同步4位二进制计数器的真值表:
表11.1 同步4位二进制计数器的真值表

27 实验4 计数器的VHDL设计 (2)同步4位二进制计数器VHDL程序
同步4位二进制计数器的电路符号如图11.15所示。其中,clk为时钟信号输入端,s为预置初值使能端,高电平有效,r为清零端,高电平有效,en为计数使能端,高电平有效,d[3..0]为预置计数器初值,q[3..0]为计数输出端,co为进位信号输出端,当计数器计数满16产生一个进位位。 图 同步4位二进制计数器的电路符号

28 实验4 计数器的VHDL设计 同步4位二进制计数器VHDL程序: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity a4 is port(clk,r,s,en:in std_logic; d:in std_logic_vector(3 downto 0); co:out std_logic; q:buffer std_logic_vector(3 downto 0)); end; architecture one of a4 is begin process(clk,r)

29 实验4 计数器的VHDL设计 if r='1' then q<=(others=>'0');
elsif clk'event and clk='1' then if s='1' then q<=d; elsif en='1' then q<=q+1; else q<=q; end if; end process; co<='1' when q="1111" and en='1' else '0'; end;

30 实验4 计数器的VHDL设计 ( 3)同步4位二进制计数器的电路仿真波形图如11.16所示。RTL电路如图11.17所示。根据波形图可知,该同步计数器符合设计要求。 图 同步4位二进制计数器的电路仿真波形图

31 实验4 计数器的VHDL设计 图 同步4位二进制计数器的RTL电路

32 实验4 计数器的VHDL设计 (4)下载验证 分配引脚并重新编译,打开EDA实验系统的总电源、将同步4位二进制计数器下载到EDA实验系统,在输入端口输入相应信号,观察输出端口进行验证。 2 . 异步4位二进制计数器的VHDL设计 (1)实验原理 构成计数器的低位计数器触发器的输出作为相邻计数触发器的时钟,这样逐步串行连接起来的一类计数器称为异步计数器。时钟信号的这种连接方法称为行波计数。这种异步计数器的计数延迟增加影响它的应用范围。下面是一个异步计数器的设计方法。

33 实验4 计数器的VHDL设计 (2)利用VHDL语言设计一个异步4位二进制计数器
异步计数器的电路符号如图11.17所示。其中,clk为时钟信号输入端,rst为复位端,q[3..0]为计数输入端。 图 异步计数器的电路符号

34 实验4 计数器的VHDL设计 ①异步4位二进制计数器中的D触发器的VHDL描述 library ieee;
use ieee.std_logic_1164.all; entity yb1 is port(clk:in std_logic; rst:in std_logic; d:in std_logic; q:out std_logic; qn:out std_logic); end; architecture one of yb1 is begin process(clk,rst) if rst='0' then q<='0';qn<='1';

35 实验4 计数器的VHDL设计 elsif clk'event and clk='1' then q<=d; qn<=not d;
end if ; end process; end; ②异步4位二进制计数器的顶层VHDL描述 library ieee; use ieee.std_logic_1164.all; entity yb1_1 is port(clk:in std_logic; rst:in std_logic; q:out std_logic_vector(3 downto 0));

36 实验4 计数器的VHDL设计 architecture one of yb1_1 is component yb1
port(clk:in std_logic; rst:in std_logic; d:in std_logic; q:out std_logic; qn:out std_logic); end component; signal q_temp:std_logic_vector(4 downto 0); begin q_temp(0)<=clk; ll:for i in 0 to 3 generate yb_dffx:yb1 port map(q_temp(i),rst,q_temp(i+1),q(i),q_temp(i+1)); end generate ll; end;

37 实验4 计数器的VHDL设计 (3)实验步骤 由于本实验涉及到层次性电路的设计,其操作步骤应先将底层的D触发器进行仿真并将其打包入库,然后在对顶层VHDL程序进行仿真,具体操作步骤可参看第6章的6.1节。 (4)异步4位二进制计数器的仿真波形如图11.18所示,其RTL电路如图11.19所示。分析仿真波形可知,计数器符合设计要求。再看RTL电路中的4个D触发器按照逐步串行连接起来的方法实现,将低位计数器触发器的输出作为相邻计数触发器的时钟,实现了异步计数功能。

38 实验4 计数器的VHDL设计 图 异步4位二进制计数器的仿真波形图 图 位二进制计数器的RTL电路

39 实验4 计数器的VHDL设计 (5)下载验证 分配引脚并重新编译,打开EDA实验系统的总电源、将异步4位二进制计数器下载到EDA实验系统,在输入端口输入相应信号,观察输出端口进行验证。 四、实验报告及总结 1、根据实验的内容,写出实验方案。 2、分析实验原理。 3、画出仿真波形图和RTL电路图,比较RTL电路的不同点。 4、总结异步4位二进制计数器电路设计的方法。

40 实验5 寄存器的VHDL设计 一. 实验目的 1. 掌握VHDL描述移位寄存器的方法。 2. 学习时序逻辑电路的VHDL设计方法。
3. 掌握用Quartus II进行文本输入法进行电路设计、编译和仿真方法。 二. 实验要求 1. 预习寄存器的相关内容。 2. 用VHDL方式完成移位寄存器电路的设计。 3. 完成移位寄存器电路的仿真。 4. 下载电路到EDA实验系统验证结果。

41 实验5 寄存器的VHDL设计 三. 实验任务 1. 8位右移寄存器的VHDL设计 (1)实验原理
在8位右移寄存器中,设CLK为移位时钟信号,DIN为8位预置寄存器初值端口,LOAD为8 位预置数据使能端,QB是串行输出端口。 当CLK的上升沿到来时进程被启动,如果这时预置使能LOAD为高电平,则将输入端口的8位二进制数并行置入移位寄存器中,作为串行右移输出基数,如果预置LOAD为低电平,则执行语句:REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1),完成并行预置输入的数据向右串行输出。

42 实验5 寄存器的VHDL设计 (2)8位右移寄存器的VHDL描述 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY SHFRT IS 位右移寄存器 PORT ( CLK,LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC ); END SHFRT; ARCHITECTURE behav OF SHFRT IS BEGIN PROCESS (CLK, LOAD) VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0); IF CLK'EVENT AND CLK = '1' THEN IF LOAD = '1' THEN 装载新数据

43 实验5 寄存器的VHDL设计 REG8 := DIN; ELSE REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1);
END IF; QB <= REG8(0); END PROCESS; 输出最低位 END behav; 图 位右移寄存器仿真波形图

44 实验5 寄存器的VHDL设计 2. 双向移位寄存器的VHDL设计 (1)实验原理
移位寄存器里面存储的二进制数据能够在时钟信号的控制下依次左移或者右移。移 位寄存器按照不同的分类方法可以分为不同的类型,按照移位寄存器的移位方向进行分类,可以分为左移移位寄存器、右移移位寄存器和双向移位寄存器。 (2)实验内容 利用VHDL语言设计一个双向移位寄存器 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

45 实验5 寄存器的VHDL设计 entity shifter is
port(data:in std_logic_vector(7 downto 0); sl_in,sr_in,reset,clk:in std_logic; mode:in std_logic_vector(1 downto 0); qout:buffer std_logic_vector(7 downto 0)); end; architecture str of shifter is signal q0,q1:std_logic; Begin process(clk) begin if(clk'event and clk='1') then if reset='1' then qout<=(others=>'0'); else case mode is

46 实验5 寄存器的VHDL设计 when "01"=>qout<=sr_in&qout(7 downto 1); --右移
when "10"=>qout<=qout(6 downto 0)&sl_in; --左移 when "11"=>qout<=data; 置数 when others=>null; end case; end if; end process; end; 图 双向移位寄存器仿真波形图

47 实验6 二进制全加器设计 一、实验目的 1.学习组合电路的设计方法。 2.掌握1位二进制全加器和4位二进制全加器的原理。
实验6 二进制全加器设计 一、实验目的 1.学习组合电路的设计方法。 2.掌握1位二进制全加器和4位二进制全加器的原理。 3.掌握VHDL语言和原理图方式混合设计1位二进制全加器。 4.掌握模块化电路设计方法。 二. 实验要求 1. 预习加法器的相关知识。 2. 用VHDL方式完成底层程序设计。 3. 全加器顶层电路采用VHDL和原理图方法分别实现并仿真。 4.用VHDL完成程序设计。 5. 完成二进制加法器的仿真。 6. 下载电路到EDA实验系统验证结果。

48 实验6 二进制全加器设计 三. 实验任务 1.设计一个1位二进制的全加器
实验6 二进制全加器设计 三. 实验任务 1.设计一个1位二进制的全加器 1位二进制的全加器要求用一个或门和两个半加器构成,二进制的全加器原理图如图11.22所示; 利用VHDL设计一个1位二进制的半加器和2输入或门并进行仿真、打包成 一个元件;用VHDL语言和原理图方式分别设计1位二进制全加器,下载程序进行验证。 (1)实验原理 首先用VHDL设计一个半加器和一个或门电路,半加器真值表见表11.2所示。

49 实验6 二进制全加器设计 表11.2 半加器真值表 半加器中的a,b为二进制加数和被加数,so是和数,co是进位
实验6 二进制全加器设计 表11.2 半加器真值表 半加器中的a,b为二进制加数和被加数,so是和数,co是进位 位。然后按照图11.22设计原理图构成全加器并用VHDL描述该 原理图。

50 实验6 二进制全加器设计 (2)设计上述实验任务1中的VHDL程序和原理图,完成电路的编译、仿真和下载。
实验6 二进制全加器设计 (2)设计上述实验任务1中的VHDL程序和原理图,完成电路的编译、仿真和下载。 图 二进制的全加器顶层电路原理图

51 实验6 二进制全加器设计 2. (选作)设计一个四位二进制全加器。注:加数与被加数均为4位二进制数。
实验6 二进制全加器设计 2. (选作)设计一个四位二进制全加器。注:加数与被加数均为4位二进制数。 用VHDL编写程序实现四位二进制全加器或将上述的1位二进制全加器进行元件打包,利用打包后的模块设计一个4位全加器。完成设计后编译、仿真和下载电路进行结果验证。 四、实验报告及总结 1、根据实验的内容,写出实验方案。 2、分析实验原理。 3、写出VHDL程序,画出仿真波形图和RTL电路图。 4、总结加法器电路设计的方法。

52 实验7 16进制计数器设计 一、实验目的 1. 掌握时序电路的设计方法。 2. 掌握带有复位和和时钟使能的16进制计数器的原理。
实验7 16进制计数器设计 一、实验目的 1. 掌握时序电路的设计方法。 2. 掌握带有复位和和时钟使能的16进制计数器的原理。 3. 掌握计数器的设计方法。 4. 学习VHDL语言设计较复杂的电路方法。 5.掌握通用计数器的设计方法。 二. 实验要求 1. 预习计数器的相关知识。 2. 用VHDL方式完成程序设计。 3. 设计一个带异步复位和同步时钟使能的16进制加法和减法计数器并分别仿真和下载。 4. 自己动手编写程序。

53 实验7 16进制计数器设计 三.实验任务和原理 所谓同步或异步计数器都是相对于时钟信号而言的,不依赖 于时钟而有效的信号称为异
实验7 16进制计数器设计 三.实验任务和原理 所谓同步或异步计数器都是相对于时钟信号而言的,不依赖 于时钟而有效的信号称为异 步信号,否则称为同步信号。本实验要设计一个带有异步复 位和同步时钟使能的16进制加法计数器和减法计数器。 1. 设计一个带有异步复位和同步时钟使能的16进制加法计数器。 利用VHDL语言设计一个带有复位和和时钟使能的16进制计 数器。设CLK为时钟使能信号,RST为复位信号,EN为计 数器使能信号,COUT为计数输出端, C为计数满16后 产生一个进位输出。

54 实验7 16进制计数器设计 2 . 设计一个带有异步复位和同步时钟使能的16进制减法计数器。
实验7 16进制计数器设计 2 . 设计一个带有异步复位和同步时钟使能的16进制减法计数器。 利用VHDL语言设计一个带有复位和和时钟使能的16进制减法计数器。 四、实验报告及总结 1、根据实验的内容,写出设计方案。 2、分析计数器实验原理。 3、写出VHDL程序画出仿真波形图。 4、总结带有复位和和时钟使能的十进制计数器电路设计的方法。

55 实验8 计数译码显示电路设计 一. 实验目的 1. 掌握模块电路的设计方法。 2. 学习掌握7段数码显示译码器设计的原理。
实验8 计数译码显示电路设计 一. 实验目的 1. 掌握模块电路的设计方法。 2. 学习掌握7段数码显示译码器设计的原理。 3. 掌握VHDL语言方式设计7段数码显示译码器。 4. 掌握静态显示电路设计方法。 二. 实验要求 1. 预习计数器、译码器和数码管显示的相关知识。 2. 用VHDL方式完成BCD-7段显示译码器设计。 3. 利用实验7中的16进制加法和减法计数器模块与7段译码显 示电路模块连接,将计数器的计数值用7段数码管显示出来。 4. 自己动手编写VHDL程序并完成顶层电路设计。 5. 完成电路编译、仿真和下载,进行结果验证。

56 实验8 计数译码显示电路设计 三.实验任务和原理 1.设计一个静态七段译码显示电路
实验8 计数译码显示电路设计 三.实验任务和原理 1.设计一个静态七段译码显示电路 BCD-7段显示译码器是代码转换器中的一种。在电子系统和各种数字测量仪表中,都需要将数字量直观地显示出来,因此数字显示电路是许多数字设备不可缺少的一部分。数字显示电路的译码器是将BCD码或者其他码转换如7段显示的编码码,用十进制数进行显示。 表11.3是一种显示十六进制的BCD-7段显示译码器真值表。

57 实验8 计数译码显示电路设计 表 BCD-7段显示译码器真值表

58 实验8 计数译码显示电路设计 2.设计一个计数译码显示电路
实验8 计数译码显示电路设计 2.设计一个计数译码显示电路 计数译码显示电路用实验7中的16进制计数模块和本实验的7段译码显示模块实现,如图11.24所示,编写完成该电路的VHDL语言程序,进行编译、仿真和电路下载。 图 计数译码显示电路

59 实验8 计数译码显示电路设计 四、实验报告及总结 1、根据实验的内容,写出设计方案。 2、分析计数译码显示电路原理。
实验8 计数译码显示电路设计 四、实验报告及总结 1、根据实验的内容,写出设计方案。 2、分析计数译码显示电路原理。 3、写出VHDL程序画出仿真波形图。 4、总结计数译码显示电路的设计方法。

60 实验9 8位数码动态扫描显示电路设计 一. 实验目的 1. 掌握模块电路的设计方法。 2. 学习掌握8位数码管动态扫描显示电路的原理。
实验9 8位数码动态扫描显示电路设计 一. 实验目的 1. 掌握模块电路的设计方法。 2. 学习掌握8位数码管动态扫描显示电路的原理。 3. 掌握VHDL语言设计8位数码管动态扫描显示电路。 二. 实验要求 1. 预习动态扫描、译码器和数码管显示的相关知识。 2. 用VHDL方式完成8位数码管动态扫描显示电路。 3. 完成电路编译、仿真和下载,进行结果验证。

61 实验9 8位数码动态扫描显示电路设计 三 .实验任务和原理 设计一个8位数码管动态扫描显示电路,可在数码管上显示0~F的任何数据。
实验9 8位数码动态扫描显示电路设计 三 .实验任务和原理 设计一个8位数码管动态扫描显示电路,可在数码管上显示0~F的任何数据。 如图11.25所示的电路中,将所有数码管的8个段线相应地并接在一起,并接到 CPLD/FPGA的一组端口控制字段输出。而各位数码管的共阴极由CPLD/FPGA的另一组端口控制B1-B8 来实现8位数码管的位输出控制。这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。

62 实验9 8位数码动态扫描显示电路设计 由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。 即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于

63 实验9 8位数码动态扫描显示电路设计 数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码
实验9 8位数码动态扫描显示电路设计 数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码 管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。 图11.25所示的是8位数码扫描显示电路,其中每个数码管的8个段:h、g、f、e、d、c、b、a都分别连在一起,8个数码管分别由8个选通信号B1、B2、…B8来选择。被选通的数码管显示数据,其余关闭。当在连续的时钟CLK信号的作用下,数码管将动态显示数据。 图 位数码扫描显示电路

64 实验9 8位数码动态扫描显示电路设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析动态扫描显示电路原理。
实验9 8位数码动态扫描显示电路设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析动态扫描显示电路原理。 3.写出VHDL程序并画出仿真波形图。 4.观察并记录实验现象。 5. 总结动态显示电路的设计方法。

65 实验10 简单状态机设计 一. 实验目的 1. 掌握状态机的原理。 2. 掌握简单状态机的VHDL设计方法。 二. 实验要求
实验10 简单状态机设计 一. 实验目的 1. 掌握状态机的原理。 2. 掌握简单状态机的VHDL设计方法。 二. 实验要求 1. 预习状态机的相关知识。 2. 用VHDL描述状态机方式完成一位二进制比较器设计。 3. 完成电路编译、仿真和下载,进行结果验证。

66 实验10 简单状态机设计

67 实验10 简单状态机设计 三 .实验任务和原理 采用状态机方法设计一个1位二进制比较器,比较两个1位串行二进制数n1、n2的大小,二进制数序列由低位向高位按时钟节拍逐位输入。 两数比较有三种结果: n1=n2设为状态s1,输出为y=00; n1>n2设为状态s2,输出为y=10; n1<n2设为状态s3,输出为y=01; 输入有四种情况,分别为00、01、10、11。 采用双进程有限状态机和单进程有限状态机两种方式进行描述。状态转换图如图11.26所示。

68 实验10 简单状态机设计 图 位二进制比较器的状态转换图

69 实验10 简单状态机设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析该状态机是那种类型状态机。
实验10 简单状态机设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析该状态机是那种类型状态机。 3.写出VHDL程序并画出仿真波形图。 4.观察并记录实验现象。 5. 总结用单进程和双进程设计设计状态机的区别。

70 实验11 4X4键盘扫描电路设计 一. 实验目的 1. 掌握4X4键盘扫描电路原理和VHDL设计方法。
三. 实验要求 1. 预习4X4键盘扫描的相关知识。 2. 用VHDL方式完成4X4键盘扫描设计。 3. 完成电路编译、仿真和下载,进行结果验证。

71 实验11 4X4键盘扫描电路设计 三 .实验任务和原理 1.设计任务
在时钟CLK控制下循环扫描键盘, 根据列扫描信号和对应键盘响应信号确定键盘按键位置,并将按键值显示在7段数码管上。 设4x4矩阵键盘扫描电路中,clk为时钟信号输入端,start为开始信号输入端,kbcol[3..0]为行扫描信号输入端,kbrow[3..0]为列扫描信号输出端, seg7_out[6..0]为7段显示控制信号输出端,scan[7..0]为数码管地址选择控制信号输出端。

72 实验11 4X4键盘扫描电路设计 2.设计原理 4x4矩阵键盘是一种常见的输入装置,通常作为系统的输入模块。对于键盘上每个键的识别一般采取扫描的方法实现。 如图11.27所示是一种用列信号进行扫描时的基本原理和流程。当进行列扫描时,扫描信号由列引脚进入键盘,以“1000”、 “0100”、 “0010”和“0001”的顺序每次扫描不同的一列,然后读取行引脚的电平信号就可以判断是哪个按键被按下。例如扫描信号为“0100”表示正在扫描“89AB”一列,如果该列没有按键被按下,则由行信号读出的值为“0000”;反之,如果桉键“9”被按下,则该行信号读出的值为“0100”。

73 实验11 4X4键盘扫描电路设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析键盘扫描原理。
图 用列信号进行扫描时的基本原理和流程 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析键盘扫描原理。 3.写出VHDL程序并画出仿真波形图。 4.观察并记录实验现象。 5. 总结用VHDL设计4X4键盘的方法。

74 实验12 8*8点阵显示电路设计 一. 实验目的 1. 掌握8*8点阵显示电路原理和VHDL设计方法。
实验12 8*8点阵显示电路设计 一. 实验目的 1. 掌握8*8点阵显示电路原理和VHDL设计方法。 2. 学习VHDL语言设计较复杂电路。 二. 实验要求 1. 预习8*8点阵显示的相关知识。 2. 用VHDL方式完成8*8点阵显示设计。 3. 完成电路编译、仿真和下载,进行结果验证。

75 实验12 8*8点阵显示电路设计 三 .实验任务和原理 1.实验任务 (1) 使用8*8矩阵显示器做成一个基本矩阵。
实验12 8*8点阵显示电路设计 三 .实验任务和原理 1.实验任务 (1) 使用8*8矩阵显示器做成一个基本矩阵。 (2) 设计扫描控制电路,使光点从屏幕左上角像素点开始扫描,终止于右下角像素点,然后周而复始地重复运行下去,扫过一帧所需时间为8s。 (3)(选作)改变时钟频率,提高10倍、100倍,记录有关各点信号波形。 (4)用VHDL编写完成上述功能的程序。

76 实验12 8*8点阵显示电路设计 2. 实验原理 8*8点阵显示主要是利用发光二级管点阵显示来显示字符或图案,成行成列的二极管排列成矩阵形状即为点阵显示屏,8*8点是最基本的点。例如,TOM-2088DX发光二极管点阵排列如图11.28所示(点阵亦可称为矩阵)。 图 TOM-2088DX发光二极管矩阵排列图

77 实验12 8*8点阵显示电路设计 按照行、列有规则排列构成的一个小面积的显示屏,可作为简单显示器;但这种简单矩阵显示的字符太小,不便观看。为了增大显示字符,可将多块8*8矩阵组合成不同形状的矩阵屏,如16*16、16*256、256*256等。图11.29所示电路就是由4块8* 8矩阵组成的16*16的矩阵显示屏。它有16根行选通线和16根列选通线,行选通线接发光二极管的正极;列选通线接发光二极管的负极。如若使某只发光二极管亮,则此管对应的行选通线应接高电平(逻辑“1”),列选通线应接低电平(逻辑“0”)。

78 实验12 8*8点阵显示电路设计 16*16的发光二级管矩阵有16根行选通线和16根列选通线。其列选通线可由序列信号产生电路提供,“0”信号亮,“1”信号灭。行选通线的作用是对16行发光二极管进行逐行扫描,且每扫描一行,此行的发光二极管正极应为高电平。因此行选通线产生电路的功能是依次输出16个“1”的正脉冲,如此反复循环。输出的每一个正脉冲应具有驱动16只发光二极管的能力,这可由译码电路实现。

79 实验12 8*8点阵显示电路设计 必要时,译码输出端要加驱动电路。因为根据人眼的视觉暂留特性(暂留时间一般为20ms),行扫描速度频率选为50Hz左右,此时1 s内有50幅断续画面出现,给人的感觉是看到一幅连续的画面或是一幅稳定的图案;如果扫描速度太慢,显示屏显示的图案将不稳定。 图 *16显示屏电路矩阵

80 实验12 8*8点阵显示电路设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析点阵显示的原理。
实验12 8*8点阵显示电路设计 四、实验报告及总结 1.根据实验的内容,写出设计方案。 2.分析点阵显示的原理。 3.写出VHDL程序并画出仿真波形图。 4.观察并记录实验现象。 5. 总结用VHDL设计8*8点阵显示的方法。

81 实验13 4位十进制频率计设计 一. 实验目的 1. 掌握频率计的设计原理。 2. 学习较复杂的数字系统设计方法。
实验13 4位十进制频率计设计 一. 实验目的 1. 掌握频率计的设计原理。 2. 学习较复杂的数字系统设计方法。 3. 学习掌握层次型系统设计方法。 二. 实验要求 1. 预习频率计的基本原理。 2. 根据4位十进制频率计顶层设计编写底层模块的VHDL程序。 3. 完成设计、仿真并下载到实验系统中进行验证。

82 实验13 4位十进制频率计设计 三 .实验任务和原理 1. 实验任务
实验13 4位十进制频率计设计 三 .实验任务和原理 1. 实验任务 (1) 根据频率计的基本原理,用VHDL和原理图混合设计方法,设计一个4位十进制频率计。用Quartus II的图形编辑方法实现频率计的顶层设计图如图11.30所示,用例化语句写出频率计的顶层文件,并给出其测频时序波形及其分析,频率计设计硬件验证。 (2)(选做)将频率计扩展为8位十进制频率计,并在测频速度上给予优化。

83 实验13 4位十进制频率计设计 2. 实验原理 4位十进制频率计的原理如图11.30所示。它由4个十进制加法计数器cnt10、4个锁存器reg4和1个测频控制信号发生器testctl组成。 根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号并为下一测频计数周期作准备的计数器清零信号。这3个信号可以由一个测频控制信号发生器testctl产生。使能信号

84 实验13 4位十进制频率计设计 cnt_en能产生生个1秒脉宽的周期信号,并对频率计的每一计数器cnt10的ena使能端进行同步控制。当cnt_en高电平时,允许计数:低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号load的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器reg4中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。锁存信号后,必须有一清0信号rst_cnt对计数器进行清零,为下1秒的计数操作作准备。其工作时序波形如图11.31所示。

85 实验13 4位十进制频率计设计 图 位十进制频率计顶层文件原理图

86 实验13 4位十进制频率计设计 四.实验报告及总结 1.画出系统的原理框图,说明系统中各主要组成部分的功能。 2.编写各个VHDL源程序。
实验13 4位十进制频率计设计 图 测频控制信号发生器testctl测控时序波形图 四.实验报告及总结 1.画出系统的原理框图,说明系统中各主要组成部分的功能。 2.编写各个VHDL源程序。 3.根据选用的软件编好用于系统仿真的测试文件。 4. 画出仿真波形、记录系统仿真和硬件验证结果。

87 实验14 简易波形信号发生器设计 一. 实验目的 1. 掌握信号发生器的设计原理。 2. 学习较复杂的数字系统设计方法。
实验14 简易波形信号发生器设计 一. 实验目的 1. 掌握信号发生器的设计原理。 2. 学习较复杂的数字系统设计方法。 3. 学习掌握层次型系统设计方法。 4. 掌握存储器的设计方法。 二. 实验要求 1. 预习信号发生器设计的基本原理。 2. 设计编写正弦波,方波,三角波,锯齿波,阶梯波底层模块的VHDL程序。 3. 完成设计、仿真并下载到实验系统中进行验证。

88 实验14 简易波形信号发生器设计

89 实验14 简易波形信号发生器设计 三 .实验任务和原理 1. 设计任务 用VHDL设计一个信号发生器,信号发生器系统框图如图11.32所示。
实验14 简易波形信号发生器设计 三 .实验任务和原理 1. 设计任务 用VHDL设计一个信号发生器,信号发生器系统框图如图11.32所示。 图 信号发生器系统框图

90 实验14 简易波形信号发生器设计 根据系统框图的输入信号的选择输出正弦波,方波,三角波,锯齿波,阶梯波5种波形。 2.实验原理
实验14 简易波形信号发生器设计 根据系统框图的输入信号的选择输出正弦波,方波,三角波,锯齿波,阶梯波5种波形。 2.实验原理 参看第10章10.2节。 四.实验报告及总结 1.画出系统的原理框图,说明系统中各主要组成部分的功能。 2.编写各个VHDL源程序。 3. 画出仿真波形、记录系统仿真和硬件验证结果。 4. 记录输出波形的技术参数。

91 实验15 交通灯控制电路设计 一. 实验目的 1. 掌握交通灯控制器的工作原理。 2. 学习较复杂的数字系统设计方法。
实验15 交通灯控制电路设计 一. 实验目的 1. 掌握交通灯控制器的工作原理。 2. 学习较复杂的数字系统设计方法。 3. 学习掌握状态机的设计方法 。 三. 实验要求 1. 预习状态机的设计方法。 2. 根据4位十进制频率计顶层设计编写底层模块的VHDL程序。 3. 完成设计、仿真并下载到实验系统中进行验证。

92 实验15 交通灯控制电路设计 四 .实验任务和原理 1. 实验原理
实验15 交通灯控制电路设计 四 .实验任务和原理 1. 实验原理 位于十字路口的交通灯,在A方向和B方向各有红、黄和绿3盏灯,按表11.4所列顺序进行循环。 表11.4 交通灯的循环顺序

93 实验15 交通灯控制电路设计 交通灯的顶层图见图11.33所示,由FP和状态机MOORE_JT2两部分组成。 图 交通灯的顶层图

94 实验15 交通灯控制电路设计 2. 实验内容 (1)先分析交通灯的工作原理,然后对状态进行编码,画出状态机框图,并编写VHDL文件和仿真文件。 (2)若完成以上内容后,可以考虑以下问题: ①如何加长“绿灯亮”的持续时间? ②如何实现各状态保持时间可调? (3)输入设计和仿真文件,并进行调试使逻辑功能和时序正确: (4)下载到实验系统上进行实际验证。

95 实验15 交通灯控制电路设计 四.实验报告及总结 1. 写出状态编码方案和状态机转移图。 2. 打印顶层电路图和主要模块的VHDL文件。
实验15 交通灯控制电路设计 四.实验报告及总结 1. 写出状态编码方案和状态机转移图。 2. 打印顶层电路图和主要模块的VHDL文件。 3. 写出测试结果及分析。


Download ppt "第二篇 实验部分 1.【实验目的】 EDA技术实验的目的是为了进一步巩固EDA技术课程的基本理论,深化对所学课程理论知识的理解,使学生了解和掌握EDA技术中 CPLD/FPGA的体系结构、工作原理、功能和特点;掌握电子线路硬件描述语言(VHDL);初步具备利用CPLD/FPGA芯片设计、开发、调试电子系统的能力;掌握和使用Quartus."

Similar presentations


Ads by Google