eda实验指导书电信word资料18页Word文件下载.docx
《eda实验指导书电信word资料18页Word文件下载.docx》由会员分享,可在线阅读,更多相关《eda实验指导书电信word资料18页Word文件下载.docx(41页珍藏版)》请在冰点文库上搜索。
![eda实验指导书电信word资料18页Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/28/61383e27-953a-440b-8755-4bc2c55a4db6/61383e27-953a-440b-8755-4bc2c55a4db61.gif)
1、实验原理图:
建立一个4-bit计数器图形设计文件(如图1.1示);
图1.1图形设计例图
对上述计数器进行功能和时间仿真,验证其功能并测试其最高工作频率。
利用向导创建一个新器件(6位全加器:
使能、流水线等参数自行设定)。
2、实验步骤:
新建一个文件夹,一般在F盘里。
打开QuartusII软件,选择File/New,在弹出的窗口中选DeviceDesignFiles选项卡,再选择BlockDiagram/Schematic选项,单击OK后打开图形编辑窗口。
选择File/SaveAs命令,保存文件在已经创建的文件夹里。
当出现询问是否创建工程的窗口,应当单击是进入创建工程流程,否则要重新创建工程把文件添加进去。
打开工程中的原理图文件,在原理图编辑窗口的任何一个位置右击,将出现快捷菜单,选择Insert/Symbol命令,出现元件输入对话框,选择相应的器件,并连接好电路,然后分别在input和output的PINNAME上双击使其变黑色,再分别输入引脚名。
选择Processing/StartCompilation命令,进行全程编译。
打开波形编辑器,选择File/New,在New中选择OtherFiles中的VectorWaveformFile选项,单击OK,出现空白的波形编译窗口
选择File/SaveAs命令,存盘。
文件名一定要与原理图文件名一致。
然后添加相应的端口信号节点到波形编辑器中,设置合理的输入信号。
选择Processing/StartSimulation,进行波形仿真。
选择Processing/ClassicTimingAnalyzerTool测试最高工作频率。
选择Tools/MegaWizardPlug-InManager,根据向导提示创建一个6位全加器。
3、实验结果记录:
打印出实验原理图与仿真波形图,写出最高工作频率,打印出利用向导创建的新器件的图形,完成实验报告
四、实验研究与思考
1、延迟时间分析、最高工作频率分析等时间分析有何重要性?
2、流水线的作用是什么?
对那些性能有影响?
2、功能仿真、验证起到什么作用?
实验二VHDL软件设计
2、掌握EDA开发工具的VHDL设计方法。
3、掌握硬件描述语言设计的编译与验证方法。
二、实验仪器
PC机一台 QuartusII 软件
1、24进制加法计数器的程序:
LIBRARYIeee;
USEieee.std_logic_1164.ALL;
USEieee.std_logic_unsigned.ALL;
ENTITYcount24IS
PORT(en,clk:
INSTD_LOGIC;
qa:
outSTD_LOGIC_VECTOR(3DOWNTO0);
--个位数计数
qb:
outSTD_LOGIC_VECTOR(1DOWNTO0));
--十位数计数
ENDcount24;
ARCHITECTUREa1OFcount24IS
BEGIN
process(clk)
variabletma:
STD_LOGIC_VECTOR(3DOWNTO0);
variabletmb:
STD_LOGIC_VECTOR(1DOWNTO0);
begin
ifclk'
eventandclk='
1'
then
ifen='
iftma="
1001"
thentma:
="
0000"
;
tmb:
=tmb+1;
Elsiftmb="
10"
andtma="
0011"
tmb:
00"
elsetma:
=tma+1;
endif;
qa<
=tma;
qb<
=tmb;
endprocess;
ENDa1;
2、实验步骤:
1)24进制计数器
打开QuartusII软件,选择File/New,在弹出的窗口中选DeviceDesignFiles选项卡,再选择VHDLFile选项,单击OK后打开程序编辑窗口。
选择File/SaveAs命令,保存文件在已经创建的文件夹里,文件名一定要与程序的实体名一致。
打开工程中的程序文件,把1中24进制加法计数器的程序输入。
打开波形编辑器,选择File/New,在New中选择OtherFiles中的VectorWaveformFile选项,单击OK,出现空白的波形编译窗口。
2)修改以上程序获得60进制加法计数器,并进行功能和时间仿真验证。
手写出24进制与60进制的加法器的实验程序,打印出仿真波形图,完成实验报告
1、比较图形设计和语言设计方法的差别和优缺点。
实验三3-8译码器
1、掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步掌握EDA软件的基本操作与应用。
4、初步了解可编程器件的设计全过程。
PC机一台 QuartusII 软件
1、新建一个设计工程;
2、输入并连接如图3.1所示原理图;
图3.13-8译码器原理图
3、选择目标器件(EP1C3T144C8);
4、编译与适配;
5、波形文件输入与设定,功能仿真与验证;
6、管脚锁定;
7、器件编程下载;
8、硬件测试;
9、采用VHDL语言描述以上3-8译码器,并重复以上4-8项;
9、自行设计纪录方式,完成实验报告
1、组合逻辑电路的设计应该注意什么问题?
3、熟悉FPGA设计的过程,比较原理图输入和文本输入的优劣。
PC机一台 QuartusII 软件
1、用VHDL语言设计一个四舍五入判别电路,其输入为8421BCD码,要求当输入大于或等于5时,判别电路输出为1,反之为0。
2、用VHDL语言设计四个开关控制一盏灯的逻辑电路,要求改变任意开关的状态能够引起灯亮灭状态的改变。
(即任一开关的合断改变原来灯亮灭的状态,参考电路原理图如图4.2所示。
)
图4.2灯控参考电路
3、用VHDL语言设计一个优先排队电路,其中:
A=1,最高优先级;
B=1,次高优先级;
C=1,最低优先级。
要求输出端最多只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端为“1”。
4、自行设计纪录方式,完成实验报告
1、CPLD和FPGA有什么差别?
设计中应该注意什么问题?
2、图形设计方法中采用LPM设计有什么好处?
一、实验的目的
1、掌握触发器功能的测试方法。
2、掌握基本RS触发器的组成及工作原理。
3、掌握集成JK触发器和D触发器的逻辑功能及触发方式。
4、掌握几种主要触发器之间相互转换的方法。
5、通过实验、体会CPLD芯片的高集成度和多I/O口。
1、用VHDL语言设计基本RS触发器、同步RS触发器、J-K触发器、D触发器,并将这些触发器集成于一个电路(芯片)中(参考设计电路如图5.1所示),并研究其相互转换的方法。
图5.1触发器设计参考电路
2、编译、仿真、管脚锁定和器件编成下载后进行硬件测试并纪录测试结果到下列各触发器的真值表中。
表一:
RS寄存器
Rd
Sd
Q
NQ
说明
1
表二:
RS锁存器
R
S
CLK1
Qn
Qn+1
Qn-1
X
表三:
D触发器
INPUTS
OUTPUTS
D
CLK2
↑
表四:
JK触发器
J
K
NQn+1
※
↓
4、分别将JK触发器和D触发器接成T触发器,模拟其工作状态,并画出其波形图。
5、自行设计纪录方式,完成实验报告
1、时序电路的设计与组合电路的设计有何差别?
2、时序电路的同步设计和异步设计有何不同?
3、异步设计的竞争冒险现象如何产生,应该如何克服竞争冒险现象?
1、了解实验系统中8位八段数码管显示模块的工作原理;
2、掌握计数器和地址发生器的VHDL描述方法;
3、掌握LED数码管7段译码器的VHDL描述方法;
4、掌握编码器的VHDL描述方法;
5、设计标准扫描驱动电路模块,以备后面实验用。
PC机一台 QuartusII 软件EDA实验箱
图6.1所示的是8位数码扫描显示电路,其中每个数码管的8个段:
h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。
根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
其VHDL示例程序如程序10.1所示。
图6.18位数码扫描显示电路图
1、实验内容1:
理解程序中各语句的含义,以及该例的整体功能。
对该例进行编辑、编译、综合、适配、仿真,给出仿真波形。
实验方式:
若考虑小数点,SG的8个段分别与PIO49、PIO48、…、PIO42(高位在右)、BT的8个位分别与PIO34、PIO35、…、PIO41(高位在左);
电路模式不限,引脚图参考附图11。
将GW48EDA系统左下方的拨码开关全部向上拨,这时实验系统的8个数码管构成图10.1的电路结构,时钟CLK可选择clock0,通过跳线选择16384Hz信号。
引脚锁定后进行编译、下载和硬件测试实验。
将实验过程和实验结果写进实验报告。
2、自行设计纪录方式,完成实验报告
【例5.1】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSCAN_LEDIS
PORT(CLK:
SG:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
--段控制信号输出
BT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
--位控制信号输出
END;
ARCHITECTUREoneOFSCAN_LEDIS
SIGNALCNT8:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALA:
INTEGERRANGE0TO15;
P1:
PROCESS(CNT8)--编码器
BEGIN
CASECNT8IS
WHEN"
000"
=>
BT<
="
00000001"
;
A<
=1;
001"
00000010"
=3;
010"
00000100"
=5;
011"
00001000"
=7;
100"
00010000"
=9;
101"
00100000"
=11;
110"
01000000"
=13;
111"
10000000"
=15;
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESSP1;
P2:
PROCESS(CLK)--计数器
IFCLK'
EVENTANDCLK='
THENCNT8<
=CNT8+1;
ENDIF;
ENDPROCESSP2;
P3:
PROCESS(A)–-译码电路
CASEAIS
WHEN0=>
SG<
0111111"
WHEN1=>
0000110"
WHEN2=>
1011011"
WHEN3=>
1001111"
WHEN4=>
1100110"
WHEN5=>
1101101"
WHEN6=>
1111101"
WHEN7=>
0000111"
WHEN8=>
1111111"
WHEN9=>
1101111"
WHEN10=>
1110111"
WHEN11=>
1111100"
WHEN12=>
0111001"
WHEN13=>
1011110"
WHEN14=>
1111001"
WHEN15=>
1110001"
ENDPROCESSP3;
例6.1是扫描显示的示例程序,其中clk是扫描时钟;
SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a7个段;
BT是位选控制信号,接图5-20中的8个选通信号:
k1、k2、…k8。
程序中CNT8是一个3位计数器,作扫描计数信号,由进程P2生成;
进程P3是7段译码查表输出程序,与例5-18相同;
进程P1是对8个数码管选通的扫描程序,例如当CNT8等于"
时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译码输出"
,显示在数码管上即为“3”;
当CNT8扫变时,将能在8个数码管上显示数据:
13579BDF。
1、字形编码的种类,即一个8段数码管可产生多少种字符,产生所有字符需多少根译码信号线?
2、字符显示亮度和扫描频率的关系,且让人感觉不出光烁现象的最低扫描频率是多少?
3、扫描显示和静态显示有什么差别?
使用扫描显示有什么好处?
-------计数器及时序电路描述
1、了解时序电路的经典设计方法(JK触发器和一般逻辑门组成的时序逻辑电路)。
2、了解同步计数器,异步计数器的使用方法。
3、了解同步计数器通过清零阻塞法和预显数法得到循环任意进制计数器的方法。
4、理解时序电路和同步计数器加译码电路的联系,设计任意编码计数器。
5、了解同步设计和异步设计的区别。
1、用JK触发器设计异步四位二进制加法计数器。
8位LED数码管16进制显示扫描显示驱动电路设计,实验参考原理图如图7.1所示。
其中,计数时钟频率CLK<
2Hz;
扫描时钟频率>
40Hz;
四位JK触发器接成异步计数器;
SEL0~SEL2为扫描地址(控制八位数码管的扫描顺序和速度);
A……G为显示译码输出,代表数码管的八个段位(a,b,c,d,e,f,g);
八位数码管同时顺序显示0~F。
图7.1计数器设计参考原理图
3.绘制原理图后进行仿真验证,最后下载到实验箱。
1、说明在FPGA设计中,同步设计和异步设计的不同之处。
2、图形设计和VHDL语言设计编程各有什么优点,混合编程时应注意些什么问题?
3、应用状态机设计时序电路需要注意哪些问题?
1、了解函数信号发生的方法。
2、掌握LPM_ROM的使用方法。
3、了解DAC0832的工作原理和控制时序。
4、掌握DAC0832的控制时序的VHDL设计实现方法。
5、了解低通滤波电路的原理及其在信号发生中的应用。
2、熟悉SignalTapII测试方法。
计算机、QuartusII软件、EDA试验箱、示波器。
1、在QuartusII上完成正弦信号发生器设计,包括仿真和资源利用情况了解(假设利用Cyclone器件)。
最后在实验系统上实测。
示例程序如例9.1,
【例9.1】正弦信号发生器顶层设计
--正弦信号发生器源文件
ENTITYSINGTIS
--信号源时钟
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
--8位波形数据输出
ARCHITECTUREDACCOFSINGTIS
COMPONENTdata_rom--调用波形数据存储器LPM_ROM文件:
data_rom.vhd声明
PORT(address:
INSTD_LOGIC_VECTOR(5DOWNTO0);
--6位地址信号
inclock:
INSTD_LOGIC;
--地址锁存时钟
q:
ENDCOMPONENT;
SIGNALQ1:
STD_LOGIC_VECTOR(5DOWNTO0);
--设定内部节点作为地址计数器
PROCESS(CLK)--LPM_ROM地址发生器进程
IFCLK'
THENQ1<
=Q1+1;
--Q1作为地址发生器计数器
ENDIF;
ENDPROCESS;
u1:
data_