硬件描述语言实验.docx
- 文档编号:4888793
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:33
- 大小:3.88MB
硬件描述语言实验.docx
《硬件描述语言实验.docx》由会员分享,可在线阅读,更多相关《硬件描述语言实验.docx(33页珍藏版)》请在冰豆网上搜索。
硬件描述语言实验
《硬件描述语言》实验指导书
南通大学电子信息学院
2008年2月
1、目的和任务
《硬件描述语言》是一门侧重于数字电子系统的设计和测试方法的课程,它
的上机实验是教学中的一个重要环节。
通过上机学习,学生不仅可以系统地复习、巩固该课程的基本理论,而且培养学生解决问题能力和创新能力,同时为该课程的课程设计作准备。
2、教学基本要求
(1)、熟练使用EDA软件(QuartusII、ModelSim);
(2)、掌握用VerilogHDL实现组合逻辑电路和时序逻辑电路的方法。
3、实验条件
(1)、PC机、QuartusⅡ软件和ModelSim软件
(2)、GW48型EDA实验开发系统(EP1K30TC144-3)
4、实验内容
序号实验内容
1实验一设计工具的使用
2实验二组合逻辑电路设计
(一)
3实验三组合逻辑电路设计
(二)
4实验四总线与总线操作
5实验五时序逻辑电路设计
(一)
6实验六时序逻辑电路设计
(二)
5、实验成绩
实验成绩的评定由实验的验收等级和实验报告等级两个部分组成,各占
50%。
实验的验收等级和实验报告等级均采用5个等级,即优、良、中、及格和不及格。
实验成绩占本课程平时成绩的50%。
实验一设计工具的使用
1、实验目的与要求
掌握在QuartusⅡ开发环境下,运用硬件描述语言输入法对“三人表决器”进行设计输入、编译、调试和仿真的方法。
“三人表决器”电路的输入为SW1、SW2和SW3,输出为L3和L4,位宽均为1位。
当SW1、SW2和SW3中有超过2个以上的输入为1时,
要求熟悉整个设计流程,从打开、建立文档、编辑、编译、建立激励信号波形及最后仿真的整个过程。
2、实验内容
(1)在QuartusⅡ开发环境下,建立工程,并将三人表决器的硬件描述语言程序输入;
(2)完成编译、调试和仿真,分析实验仿真结果,并判断其正确性。
3、教学形式
(1)本实验为验证型实验,学生在实验前预习实验指导书;
(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实验中的难点和注意事项进行一定的说明;
(3)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。
4、应达到的实验能力标准
(1)能熟练地在QuartusⅡ开发环境下,建立工程,并将三人表决器的硬件描述语言程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真;
(4)掌握基于ACEX1K系列EP1K30TC144-3器件的时序仿真方法。
5、思考题
(1)用QuartusII软件对设计电路进行的仿真包括哪两种类型,它们之间
有什么区别?
(2)硬件描述语言输入法进行设计时的基本操作流程包括哪些环节?
实验二组合逻辑电路的设计
(1)
1、实验目的与要求
掌握在QuartusⅡ开发环境下,运用Verilog硬件描述语言输入法对8选1多路选择器进行编译、调试和仿真的方法。
要求根据使能端en[1:
0]的不同组合,从8个输入a、b、c、d、e、f、g、h中选择1个输出,输出out的位宽为1位。
并分别采用case语句和if-else语句设计8选1多路选择器。
2、实验内容
(1)在QuartusⅡ开发环境下,建立工程,并将8选1多路选择器的硬件描述语言程序输入;
(2)完成编译、调试和仿真,分析实验仿真结果,判断其正确性。
3、教学形式
(1)本实验为设计型实验,学生在实验前预习实验指导书;
(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实
验中的难点和注意事项进行一定的说明;
(3)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。
4、应达到的实验能力标准
(1)能熟练地在QuartusⅡ开发环境下,建立工程,并将8选1多路选择
器的硬件描述语言程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真;
(4)掌握基于ACEX1K系列EP1K30TC144-3器件的时序仿真方法。
5、思考题
(1)采用case语句和if-else语句分别设计的八选一多路选择器之间有什么
区别?
(2)如果要求不采用always语句,而采用assign语句设计该组合逻辑电路,
该如何设计?
实验三组合逻辑电路的设计
(2)
1、实验目的与要求
掌握在QuartusⅡ开发环境下,运用硬件描述语言输入法对8线-3线优先编码器74148电路进行编译、调试和仿真的方法。
要求分别用case语句和if-else语句设计8线-3线优先编码器74148。
电路的输入为ei、i0、i1、i2、i3、i4、i5、i6、i7,输出为a2、a1、a0、gs、eo。
优先编码器74148的功能表如下:
2、实验内容
(1)在QuartusⅡ开发环境下,建立工程,并将8线-3线优先编码器74148电路的硬件描述语言程序输入;
(2)完成编译、调试和仿真,分析实验仿真结果,判断其正确性。
3、教学形式
(1)本实验为设计型实验,学生在实验前预习实验指导书;
(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实验中的难点和注意事项进行一定的说明;
(3)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。
4、应达到的实验能力标准
(1)能熟练地在QuartusⅡ开发环境下,建立工程,并将8线-3线优先编码器74148电路的VerilogHDL程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真和时序仿真。
5、思考题
(1)如果要求不采用always语句,而采用assign语句设计该组合逻辑电路,该如何设计?
(2)如果要求设计译码器74138,该如何设计?
实验四总线与总线操作
1、实验目的与要求
掌握总线与总线操作的工作原理,以及运用VerilogHDL进行设计、编译、调试和仿真的方法。
要求设计一个挂在总线上的32位数据寄存器,片选信号ce(高电平有效),读信号rd(高电平有效),写we信号(高电平有效)。
2、实验内容
(1)选择两种方案,分别进行VerilogHDL设计;
(2)在QuartusⅡ开发环境下,建立工程,并将设计实现的硬件描述语言程序输入;
(3)完成编译、调试和仿真,分析实验仿真结果,判断其正确性。
3、教学形式
(1)本实验为设计型实验,学生应该在实验之前预习实验指导书;
(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实验的难点和注意事项进行一定的说明;
(3)实验进行中学生完成所有的实验步骤,并对实验结果进行分析;
(4)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。
4、应达到的实验能力标准
(1)掌握总线与总线操作的工作原理,掌握inout类型的定义和使用方法;
(2)能熟练地在QuartusⅡ开发环境下,建立工程,并将一个挂在总线上的32位数据寄存器的硬件描述语言程序输入;
(3)能熟练地进行编译和调试,排除编译后的错误;
(4)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真和时序仿真。
5、思考题
(1)如果要设计一个挂在总线上的16位数据寄存器,片选信号为ce(高电平有效)读信号为rd(低电平有效),写信号为wt(低电平有效),那么应该如何设计?
实验五时序逻辑电路的设计
(1)
——计数器/分频器电路的设计
1、实验目的与要求
掌握在QuartusⅡ开发环境下,运用硬件描述语言设计计数器/分频器电路,以及进行编译、调试和仿真的方法。
要求设计一个4位2进制BCD码加一计数器电路/占空比接近50%的27分频器电路)。
计数器电路端口为:
异步清零输入端口rst,输入时钟clk,输出端口q[3:
0]。
分频器电路端口为:
异步清零输入端口rst,输入时钟clk_in,输出时钟clk_out。
并分别采用两种以上的方法实现。
2、实验内容
(1)在QuartusⅡ开发环境下,建立工程,并将计数器/分频器电路的硬件描述语言程序输入;
(2)完成编译、调试和仿真,分析实验仿真结果,判断其正确性。
3、教学形式
(1)本实验为设计型实验,学生在实验前预习实验指导书;
(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实验中的难点和注意事项进行一定的说明;
(3)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。
4、应达到的实验能力标准
(1)能熟练地在QuartusⅡ开发环境下,建立工程,并将计数器/分频器电路的VerilogHDL程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真和时序仿真。
5、思考题
(1)如果要求设计的是一个31进制计数器,且占空比不作特别要求,那么该设计有哪些方法可以实现?
实验六时序逻辑电路的设计
(2)
——移位寄存器/序列检测器电路的设计
1、实验目的与要求
掌握在QuartusⅡ开发环境下,运用硬件描述语言设计移位寄存器/序列检测器电路,以及进行编译、调试和仿真的方法。
要求设计一个具有置位、复位、左移和右移功能的八位移位寄存器/“10100101”序列检测器。
移位寄存器电路端口为:
异步清零输入端口rst,输入时钟clk,置数判断输入端口load,移位类型判断输入端口m,数据输入端口data[7:
0],输出端口q[7:
0]。
序列检测器电路端口为:
异步清零输入端口rst,输入时钟clk,串行数据输入端口d,输出标志端口s。
并分别采用两种以上的方法实现移位寄存器/序列检测器电路的设计。
2、实验内容
(1)在QuartusⅡ开发环境下,建立工程,并将移位寄存器/序列检测器电路的硬件描述语言程序输入;
(2)完成编译、调试和仿真,分析实验仿真结果,判断其正确性。
3、教学形式
(1)本实验为设计型实验,学生在实验前预习实验指导书;
(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实验中的难点和注意事项进行一定的说明;
(3)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。
4、应达到的实验能力标准
(1)能熟练地在QuartusⅡ开发环境下,建立工程,并将移位寄存器/序列检测器电路的VerilogHDL程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真和时序仿真。
8《硬件描述语言》实验指导书
5、思考题
(1)如果要求设计的是一个并行输入、串行输出的数据转换器,那么该如何设计?
如果要求设计的是一个串行输入、并行输出的数据转换器,那么该如何设计?
(2)如果要求设计的是一个“1111101000011”序列检测器,那么该如何设计?
附录:
QuartusII的开发流程
一个简单的三人表决器的VerilogHDL设计
功能描述:
三个人分别用拨位开关SW1、SW2、SW3来表示自己的意愿,如果对某决议
同意,各人就把自己的拨位开关拨到高电平,不同意就把自己的拨位开关拨到低电平。
表决
结果用LED(高电平亮)显示,如果决议通过那么实验板上L3灯亮;如果不通过那么实验板上L3灯不亮;如果对某个决议有任意二到三人同意,那么此决议通过,L3亮;如果对某个决议只有一个人或没人同意,那么此决议不通过,L3灯不亮。
用VerilogHDL设计“三人表决器”
双击Quartus4.2图标,启动Quartus4.2,并新建工程
将弹出下图窗口,选择Project的目录
选择好目录后打相关文件名,我们用系统默认的,如下图
建立建的Verilog-HDL文件
选择VerilogHDLFile
在弹出的文本窗体中输入下面语句
//三人表决器majority_voter.v
moduleMAJORITY_VOTER(SW1,SW2,SW3,L3,L4);
outputL3,L4;
wireL3,L4;
inputSW1,SW2,SW3;
assignL3=(SW1&&SW2)||(SW1&&SW3)||(SW2&&SW3);
assignL4=!
L3;
endmodule
保存VerilogHDL文件,点击保存文件按钮或File->Save,
(注:
该工程中只有一个文件,我们是把这个文件作为顶层文件,该文件的文件
名必须和工程名相同,并且文件中模块名必须和该文件的文件名相同)
指定芯片
如图,选择EPM7128SLC84-15,点击OK
编译项目
如果没有错误将弹出:
编译后的信息显示了芯片资源的利用率等详细信息,如下图右边框中显示:
指定管脚
将弹出下面的窗口,我们在To处选择所要指定的管脚(如L3),然后在Location处选择或直接输入芯片的管脚(直接输入只需要数字,如41)
我们再编译一次,使管脚定义信息加入相关文件
波形仿真
加入波形:
在波形窗口中点击右键,选择InsertNodeorBus
将会弹出下图窗口,点击NodeFinder
点List
保存文件MAJORITY_VOTER
为了方便观察波形,我们现在设置格点尺寸和结束时间,可以在Edit下面的EndTime和GrideSize中设置,我们设置GrideSize为30ns,EndTime为1us(其中GrideSize不要设太小,否则以后可能会出现信号的延迟大于信号的有效时间,而使仿真结果感觉到好像不正确)。
我们可以再次保存一下波形文件点击波形仿真按钮,也可以在Tools->SimulationTools,联后按START按钮
波形仿真如果无错误,将出现下面的窗口
下载验证
首先,检查硬件是否连接正确无误。
1.将手接触自来水管等接地装置,或用自来水冲洗并擦干,防止静电影响
2.将配套的螺丝安装到实验板的四个支柱孔上,将实验板放到绝缘物体上(下面千万不要放钥匙、螺丝刀等物体)
3.将配套的25芯并口延长线公端和电脑相连,母端和实验板相连
4.将配套电源一端和实验板电源接口相连,另一端和220V市电相连
5.打开电源开关(如果要取下并口线,请先关闭电源,防止产生瞬时电流对你并口产生影响)
6.在实验系统上选择好模式,下面就可以下载验证了。
(你在下载程序进行长时间运行时,请注意芯片温度,避免因为一些失误而造成芯片损坏,如果温度很高,请及时检查原因)
接着,点Programmer或选择Tools->Programmer
在下面窗口中点击AddHardware
此时系列会识别并口和下载电缆,如下图(注:
对系统而言Byteblaster和ByteblasterMV都认为ByteblasterMV)
我们将看到蓝色跳不断充满,当显示100%时下载成功。
通过测试,设计的表决器功能完全正确
答案
南通大学电子信息学院
实验报告册
实验课程名称:
硬件描述语言
班级:
XXX
姓名:
XXX
学号:
XXXXXXXXX
2011-2012学年第二学期
一.表决器
1、实验目的与要求
掌握在QuartusⅡ开发环境下,运用硬件描述语言输入法对“三人表决器”进行设计输入、编译、调试和仿真的方法。
“三人表决器”电路的输入为a、b和c,输出为out,位宽均为1位。
当a、b和c中有超过2个以上的输入为1时,
要求熟悉整个设计流程,从打开、建立文档、编辑、编译、建立激励信号波形及最后仿真的整个过程。
2、实验内容
modulem1(a,b,c,out);
inputa,b,c;
outputout;
regout;
always@(a,b,c)
if(a&&b)
out=1;
elseif(a&&c)
out=1;
elseif(b&&c)
out=1;
else
out=0;
endmodule
3,实验结果
二.3-8译码器
1、实验相关知识简述:
3/8译码器真值表(输出高电平有效)
in
out
000
00000001
001
00000010
010
00000100
011
00001000
100
00010000
101
00100000
110
01000000
111
10000000
2.实验目的:
(1)熟练使用EDA软件(QuartusII、ModelSim);
(2)掌握用VerilogHDL实现组合逻辑电路和时序逻辑电路的方法。
3.实验仪器:
微机一台,quartus软件一套
4.实验过程:
modulem2(out,in);
input[2:
0]in;
output[7:
0]out;
reg[7:
0]out;
always@(in)
case(in)
3’b000:
out=8’b00000001;
3’b001:
out=8’b00000010;
3’b010:
out=8’b00000100;
3’b011:
out=8’b00001000;
3’b100:
out=8’b00010000;
3’b101:
out=8’b00100000;
3’b110:
out=8’b01000000;
3’b111:
out=8’b10000000;
Endcase
Endmodule
5.实验数据记录:
三.8位数据选择器
1.实验相关知识简述:
数据选择器真值表:
(使能端有效时)
in
out
000
in[0]
001
in[1]
010
in[2]
011
in[3]
100
in[4]
101
in[5]
110
in[6]
111
in[7]
2.实验目的:
掌握在QuartusⅡ开发环境下,运用Verilog硬件描述语言输入法对8选1多路选择器进行编译、调试和仿真的方法。
要求根据使能端en[1:
0]的不同组合,从8个输入a、b、c、d、e、f、g、h中选择1个输出,输出out的位宽为1位。
并分别采用case语句和if-else语句设计8选1多路选择器。
3.实验器材:
微机一台,quartus软件一套
4.实验过程:
modulem81(in,out,a,b,c,d,e,f,g,h,en);
input[2:
0]in;
input[1:
0]en;
inputa,b,c,d,e,f,g,h;
outputout;
regout;
always@(en,in,a,b,c,d,e,f,g,h)
if(en)
/*case(in)
3'b000:
out=a;
3'b001:
out=b;
3'b010:
out=c;
3'b011:
out=d;
3'b100:
out=e;
3'b101:
out=f;
3'b110:
out=g;
3'b111:
out=h;
endcase*/
if(in==3'b000)
out=a;
elseif(in==3'b001)
out=b;
elseif(in==3'b010)
out=c;
elseif(in==3'b011)
out=d;
elseif(in==3'b100)
out=e;
elseif(in==3'b101)
out=f;
elseif(in==3'b110)
out=g;
elseif(in==3'b111)
out=h;
else
out=1'bz;
endmodule
5.实验数据记录:
6.综合电路图:
四.挂在总线上的数据寄存器
1.实验相关知识简述:
三态总线:
D触发器:
表达式:
Qn+1=Qn;
2.实验目的:
掌握总线与总线操作的工作原理,以及运用VerilogHDL进行设计、编译、调试和仿真的方法。
要求设计一个挂在总线上的8位数据寄存器,片选信号ce(高电平有效),读信号rd(高电平有效),写we信号(高电平有效)。
3.实验器材:
微机一台,quartus软件一套
4.实验过程:
modulem4(ce,rd,we,d,clk,q);
inputce,rd,we;
inputclk;
inout[31:
0]d;
output[31:
0]q;
reg[31:
0]q;
always@(posedgeclk)
if(ce&&we)
q<=d;
else
q<=q;
assignd=(rd&&ce)?
q:
32'bzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz;
endmodule
5.实验数据记录:
四.实验总结
《硬件描述语言》是一门侧重于数字电子系统的设计和测试方法的课程,它
的上机实验是教学中的一个重要环节。
通过上机学习,学生不仅可以系统地复习.
巩固该课程的基本理论,而且培养学生解决问题能力和创新能力,同时为该课程的
课程设计作准备。
通过以上三次实验我不仅初步掌握了quartus软件的使用方法,以及数字系统设
计中关于编码器,译码器,数据选择器以及总线等部分,而且掌握了设计电路时的分析以
及调试方法,我相信以后再碰到类似问题,我能轻松的解决。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 描述 语言 实验