可编程逻辑设计实验手册.docx
- 文档编号:27660711
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:18
- 大小:109.59KB
可编程逻辑设计实验手册.docx
《可编程逻辑设计实验手册.docx》由会员分享,可在线阅读,更多相关《可编程逻辑设计实验手册.docx(18页珍藏版)》请在冰豆网上搜索。
可编程逻辑设计实验手册
《可编程逻辑设计》实验手册
注意事项
1、本实验手册是为了配合《EDA技术实用教程》,作为本课程实验环节的补充指导而编制。
2、实验中涉及的QuartusⅡ软件的使用请参考《EDA技术实用教程》中有关章节。
3、手册中所有的虚线空白框,都留出来作为实验记录之用,每个实验完成后,应按照实验内容的要求将实验结果记入框中。
4、每个实验后面都附有一道思考题,完成实验内容后可以作为更进一步的练习。
5、每个实验中的硬件测试需要在实验箱上完成,引脚锁定请参考手册最后的实验箱引脚资源说明自行确定。
6、实验一~实验七为必做部分,请自行合理安排时间完成;实验八为选做部分。
7、每次实验后将手册相关部分(完成实验结果记录)、实验源代码(.vhd文件)或电路图一起,作为实验报告上交。
8、课程结束后请将所有报告按顺序加封面装订好上交,作为实验部分成绩计入总成绩。
实验一利用原理图输入法设计4位全加器
一、实验目的:
熟悉如何在QuartusⅡ集成环境下利用原理图输入设计简单组合逻辑电路,掌握层次化的电路设计方法。
二、实验原理:
一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。
三、实验内容:
软件的熟悉
熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本节的内容,重点掌握层次化的设计方法。
2.设计1位全加器原理图
设计的原理图如下所示
3.利用层次化原理图方法设计4位全加器
(1)生成新的空白原理图,作为4位全加器设计输入
(2)利用已经生成的1位全加器作为电路单元,设计4位全加器的原理图,如下所示
4、设计一个超前进位4位全加器
以上设计的全加器是基于串行进位的结构,高位的进位输入必须等待低位的运算结果,造成较长的延时。
通过对进位位进行超前运算,可以缩短这部分的延时。
在已有1位全加器的基础上设计一个具有超前进位结构的4位全加器,原理图如下所示
5、完成设计流程
(1)在QuartusII环境下对以上设计电路按照教材节的流程进行编译,排除错误,生成最终配置文件。
(2)对结果进行时序仿真,观察设计的正确性(注意观察时序仿真波形中引入的延时),如有错误应改正电路,并重新执行整个流程,直到得到正确的仿真结果。
四、思考题
1、你在原理图设计中使用的是哪一个库里面的元件,是否还有其他库可用,有什么不同?
请试着用另外一个库重复以上的设计内容。
2、试用QuartusII下的时序分析器(教材11.3.7~分析两种进位结构的4位全加器的时序,给出数据对比,说明两者之间的性能差异。
实验二简单组合电路的设计
一、实验目的:
熟悉QuartusⅡ境下以VHDL作为输入的设计全过程。
学习简单组合电路的设计、多层次电路设计、仿真和实际硬件电路测试的方法。
二、实验原理
VHDL硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(IEEE),本次实验是用VHDL设计一个简单的数字组合逻辑电路,并结合QuartusⅡ环境和实验电路进行硬件测试。
三、实验内容:
1)根据实验一中一位全加器的电路原理图,改用VHDL语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。
设计完成后,利用QuartusⅡ集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。
modulef_adder(ain,bin,cin,cout,sum);
outputcout,sum;inputain,bin,cin;
wiree,d,f;
h_adderinst(ain,bin,e,d);
h_adderinst1(.a(e),.so(sum),.b(cin),.co(f));
or2ainst2(.a(d),.b(f),.c(cout));
endmodule
2)用VHDL语言设计一个四选一数据选择器电路。
要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。
MUX21a:
moduleMUX21a(a,b,s,y);
inputa,b,s;
outputy;
assigny=(s?
a:
b);
endmodule
MUX41a:
moduleMUX41a(s1,s0,a1,b1,a2,b2,y1);
inputs1,s0,a1,b1,a2,b2;
outputy1;
wirek1,k2;
MUX21au1(a1,b1,s0,k1);
MUX21au2(a2,b2,s0,k2);
MUX21au3(k1,k2,s1,y1);
endmodule
3)硬件测试
请在实验系统上测试四选一数据选择器。
四、思考题
如果不使用元件例化语句,而是直接设计四选一数据选择器mux41,应如何用VHDL进行描述?
实验三简单时序电路的设计
一、实验目的:
掌握QuartusⅡ环境下以VHDL作为输入的整个设计过程,学习简单时序电路的设计、仿真和硬件测试方法。
二、实验原理
时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的90%以上。
触发器是时序电路的基本单元,本实验中将涉及到边沿触发和电平触发两种电路结构,其中边沿触发是实际电路实现的主要方式。
三、实验内容
1)设计一个上升沿触发的D触发器
输入:
D
输出:
Q
触发时钟:
CLK
2)设计同步/异步清零D触发器
触发器有两种清零方式:
同步——当触发沿到来时,若清零信号有效,则实现清零;异步——任何时候清零信号一旦有效,触发器马上清零,而不论触发沿是否到来。
在以上设计的D触发器基础上,加入清零端rst,分别实现同步和异步清零方式。
3)设计一个高电平有效的锁存器
输入:
D
输出:
Q
触发:
E
电平触发的锁存器与沿触发的触发器不同之处在于当触发端处于有效电平时,输出等于输出,随输入变化;触发端无效时输出保持不变。
4)在QuartusⅡ环境下对以上设计的模块进行编译,记录时序分析数据和仿真波形,并在实验电路上进行硬件测试。
5)请分析和比较1)和3)的仿真和实测结果,说明两者之间的异同点。
四、思考题
在本次实验中你使用的VHDL描述方式是和实验二中一样的结构化描述还是行为级描述?
这两种方式描述的编译出来的仿真结果是否相同?
实验四异步清零和同步时钟使能的4位加法计数器
一、实验目的:
学习计数器的设计、仿真和实际硬件电路测试方法;进一步练习用VHDL语言设计数字逻辑电路。
二、实验原理
下面给出的是本试验中所要设计的计数器的结构框图,由4位带异步清零的加法计数器和一个4位锁存器组成。
其中,rst是异步清零信号,高电平有效;clk是计数时钟;ENA为计数器输出使能控制。
当ENA为‘1’时,加法计数器的计数值通过锁存器输出;当ENA为‘0’时锁存器输出为高阻态。
三、实验内容
1)用VHDL语言完成上述计数器的行为级设计。
可以采用分层描述的方式,分别设计计数器和输出锁存器模块,然后将两个模块组合成一个顶层模块。
注意输出锁存器输出高阻时的描述的方式。
2)用QuartusⅡ对上述设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。
3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。
四、思考题
如果需要设计带并行预置初始值的计数器,用VHDL应如何描述?
实验五七段数码显示译码器设计
一、实验目的:
学习7段数码显示译码器的设计和利用VHDL语言进行层次化电路设计的方法。
二、实验原理:
七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。
七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数码管显示出该字符的编码。
三、实验内容
1)用VHDL设计7段数码管显示译码电路,并在QuartusⅡ平台下对设计的译码器进行时序仿真,给出仿真的波形。
2)数码管显示电路设计
利用以上设计的译码器模块,设计一个可以在8个数码管上同时显示字符的电路。
快速轮流点亮8个数码管,这样就可以实现同时显示8个字符的效果(尽管实际上同一时间只有一个数码管被点亮)。
要实现以上功能,就必须按照一定时钟节拍,轮流使译码器输出所需要字符的编码;同时控制数码管的公共电极电平,轮流点亮数码管(可以使用上个实验设计的计数器,加实验板上的74ls138来实现,其中74ls138的译码输入端与FPGA的io相连,8个译码输出端分别与8个数码管的公共电极相连)。
3)用QuartusⅡ对2)中的设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。
4)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。
四、思考题
尝试将74ls138的功能也用VHDL来实现,将所有逻辑功能都集成到FPGA里面,请写出其VHDL描述(将源代码与实验代码一起作为附录)。
实验六数控分频器的设计
一、实验目的:
学习数控分频器的设计和测试方法,熟练掌握利用VHDL语言进行数字逻辑电路设计的方法。
二、实验原理:
数控分频器的功能为在不同输入信号时,对时钟信号进行不同的分频,在输出端输出不同频率的信号。
该电路可以用具有并行预置功能的加法计数器实现,方法是对应不同的输入信号,预置数(初始计数值)设定不同的值,然后用计数器的溢出信号作为输出信号或输出信号的控制值。
电路输出波形图:
三、实验内容:
1)根据试验原理编制实现数控分频器的VHDL程序。
提示:
可以将计数器溢出信号输出给一个翻转触发器,溢出信号的边沿作为触发器的触发信号,触发器的输出就是分频器的输出(注意计数器初始计数值与输出频率之间的关系)。
2)用QuartusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。
3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。
四、思考题:
如果需要进行奇数分频(如3分频),能否够保持输出波形的占空比为50%?
如果不能,如何使占空比尽量接近50%;如果可以,应如何做?
实验七4位十进制频率计的设计
一、实验目的:
设计一个4位十进制频率计,学习用VHDL语言进行较为复杂的数字系统设计。
二、实验原理:
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的脉冲计数允许信号,1秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。
三、实验内容:
1)根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块,顶层文件与模块电路均用VHDL硬件描述语言进行设计。
控制器——产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号
计数器——对输入信号的脉冲数进行累计
锁存器——锁存测得的频率值
LED显示——将频率值显示在数码管上
顶层文件框图如下:
用元件例化语句写出频率计的顶层文件。
2)分别用VHDL语言设计各个模块
本实验中不少模块在之前的实验中已经有所涉及,只需要对以前的设计做部分修改即可用于这次实验。
提示:
十进制计数器输出的应是4位十进制数的BCD码,因此一共的输出是4×4bit
3)用QuartusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据(不包括数码管显示部分)。
3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。
四、思考题:
本实验中的控制器部分可以用以前实验中的哪个电路来实现,其输出的rst和ena信号是否可以合并为一个信号?
实验八交通灯逻辑控制电路设计
一、实验目的:
设计一个交通灯逻辑控制电路,学习用VHDL语言进行较为复杂的数字系统设计,体会原理图设计与VHDL描述、Bottom-up与Top-down设计方法之间的异同。
复习原理图的设计方法和流程。
二、实验原理:
1)
满足下图顺序工作流程。
图中设南北方向的红、黄、绿灯分别为NSR、NSY、NSG,东西方向的红、黄、绿灯分别为EWR、EWY、EWG。
它们的工作方式有些必须是并行进行的,即南北方向绿灯亮,东西方向红灯亮;南北方向黄灯亮,东西方向红灯亮;南北方向红灯亮,东西方向绿灯亮;南北方向红灯亮,东西方向黄红灯亮。
2)应满足两个方向的工作时序:
即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和。
时序流程如下图所示。
123456789
101112123456
NSG
NSY
NSR
EWR
EWG
EWY
t
5t
6t
t
假设每个单位时间为3秒,则南北、东西方向绿、黄、红灯亮时间分别15秒、3秒、18秒,一次循环为36秒。
其中红灯亮的时间为绿灯、黄灯亮的时间之和。
3)十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。
具体为:
当某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。
例如:
当南北方向从黄灯转换成红灯时,置南北方向数字显示为24,并使数显计数器开始减“1”计数,当减到“0”,时,此时红灯灭,而南北方向的绿灯亮;同时,东西方向的红灯亮,并置东西方向的数显为24。
三、实验内容
1)用VHDL描述的方法完成设计,用QuartusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。
2)在QuartusⅡ中将你在数字电路课程设计中设计好的原理图作为设计输入,进行编译、综合、仿真,给出仿真波形和时序分析数据。
3)通过QuartusⅡ集成环境,将以上两个设计下载到实验电路上进行硬件测试。
4)记录在QuartusⅡ下观察到由VHDL经过综合得到的RTL电路,与自己做数字电路课程设计时的电路原理图对比,看看有哪些异同。
四、思考题
在你本次实验的设计中,有用到上课讲到过的哪些优化手段吗?
如果没有,有什么地方是可以进一步优化的?
附录EDA实验箱部分资源引脚说明
新
(GW48系列SOPC/EDA实验开发系统,选用器件Cyclone系列EP1C6Q240C8NPin240,选择模式5、JDSP跳线置于Close)
开关引脚
键1233
键2234
键3235
键4236
键5237
键6238
键7239
键8240
LED引脚
LED11
LED22
LED33
LED44
LED56
LED67
LED78
LED812
时钟引脚
CLOCK028
CLOCK2153
CLOCK5152
CLOCK929
数码管引脚
A173
B169
C168
D167
E166
F165
G164
Dp163
S1162
S2161
S3160
S4159
S5158
S6141
S7140
S8139
旧
(EDA-IV型实验箱选用器件FLEX10K系列EPF10K10Pin84)
开关引脚
SW130
SW235
SW336
SW437
SW538
SW639
SW747
SW842
LED引脚
LED116
LED217
LED318
LED419
LED521
LED622
LED723
LED824
LED925
LED1027
时钟引脚
CLK143
CLK244
CLK384
CLK42
CLK51
数码管引脚
A5
B6
C7
D8
E9
F10
G11
Dp81
S178
S279
S380
LED1128
LED1229
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 逻辑设计 实验 手册