硬件描述语言实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《硬件描述语言》实验指导书
南通大学电子信息学院
2008 年 2 月
1、目的和任务
《硬件描述语言》是一门侧重于数字电子系统的设计和测试方法的课程,它的上机实验是教学中的一个重要环节。

通过上机学习,学生不仅可以系统地复习、巩固该课程的基本理论,而且培养学生解决问题能力和创新能力,同时为该课程的课程设计作准备。

2、教学基本要求
(1)、熟练使用 EDA 软件(Quartus II、ModelSim);
(2)、掌握用 Verilog HDL 实现组合逻辑电路和时序逻辑电路的方法。

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)用 Quartus II 软件对设计电路进行的仿真包括哪两种类型,它们之间有什么区别?
(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 电路的 Verilog HDL 程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真和时序仿真。

5、思考题
(1)如果要求不采用 always 语句,而采用 assign 语句设计该组合逻辑电路,该如何设计?
(2)如果要求设计译码器 74138,该如何设计?
实验四总线与总线操作
1、实验目的与要求
掌握总线与总线操作的工作原理,以及运用Verilog HDL 进行设计、编译、调试和仿真的方法。

要求设计一个挂在总线上的 32 位数据寄存器,片选信号 ce (高电平有效),读信号 rd(高电平有效),写 we 信号(高电平有效)。

2、实验内容
(1)选择两种方案,分别进行 Verilog HDL 设计;
(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 Ⅱ开发环境下,建立工程,并将计数器/分频器电路的 Verilog HDL程序输入;
(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 Ⅱ开发环境下,建立工程,并将移位寄存器/序列检测器电路的 Verilog HDL 程序输入;
(2)能熟练地进行编译和调试,排除编译后的错误;
(3)正确地在仿真之前进行功能仿真的设置,并熟练地完成功能仿真和时序仿真。

8 《硬件描述语言》实验指导书
5、思考题
(1)如果要求设计的是一个并行输入、串行输出的数据转换器,那么该如何
设计?如果要求设计的是一个串行输入、并行输出的数据转换器,那么该如何设计?
(2)如果要求设计的是一个“1111101000011”序列检测器,那么该如何设计?
附录:Quartus II的开发流程
一个简单的三人表决器的 Verilog HDL设计
功能描述:三个人分别用拨位开关 SW1、SW2、SW3 来表示自己的意愿,如果对某决议
同意,各人就把自己的拨位开关拨到高电平,不同意就把自己的拨位开关拨到低电平。

表决结果用 LED(高电平亮)显示,如果决议通过那么实验板上 L3 灯亮;如果不通过那么实验板上 L3 灯不亮;如果对某个决议有任意二到三人同意,那么此决议通过,L3 亮;如果对某个决议只有一个人或没人同意,那么此决议不通过,L3 灯不亮。

用Verilog HDL设计“三人表决器”
双击Quartus4. 2 图标,启动Quartus4. 2,并新建工程
将弹出下图窗口,选择Project的目录
选择好目录后打相关文件名,我们用系统默认的,如下图
建立建的Verilog-HDL 文件
选择Verilog HDL File
在弹出的文本窗体中输入下面语句
//三人表决器 majority_voter.v
module MAJORITY_VOTER(SW1,SW2,SW3,L3,L4);
output L3,L4;
wire L3,L4;
input SW1,SW2,SW3;
assign L3=(SW1&&SW2)||(SW1&&SW3)||(SW2&&SW3); assign L4=!L3;
endmodule
保存Verilog HDL文件,点击保存文件按钮或File->Save,
(注:该工程中只有一个文件,我们是把这个文件作为顶层文件,该文件的文件名必须和工程名相同,并且文件中模块名必须和该文件的文件名相同)
指定芯片
如图,选择EPM7128SLC84-15,点击OK
编译项目
如果没有错误将弹出:
编译后的信息显示了芯片资源的利用率等详细信息,如下图右边框中显示:
指定管脚
将弹出下面的窗口,我们在To 处选择所要指定的管脚(如L3),然后在Location处选择或
直接输入芯片的管脚(直接输入只需要数字,如41)
我们再编译一次,使管脚定义信息加入相关文件
波形仿真
加入波形:在波形窗口中点击右键,选择Insert Node or Bus
将会弹出下图窗口,点击Node Finder
点List
保存文件MAJORITY_VOTER
为了方便观察波形,我们现在设置格点尺寸和结束时间,可以在Edit 下面的End Time 和Gride Size 中设置,我们设置Gride Size 为30ns,End Time 为1us(其中Gride Size 不要设太小,否则以后可能会出现信号的延迟大于信号的有效时间,而使仿真结果感觉到好像不正确)。

我们可以再次保存一下波形文件点击波形仿真按钮,也可以在Tools->Simulation Tools ,联后按START 按钮
波形仿真如果无错误,将出现下面的窗口
下载验证
首先,检查硬件是否连接正确无误。

1.将手接触自来水管等接地装置,或用自来水冲洗并擦干,防止静电影响
2.将配套的螺丝安装到实验板的四个支柱孔上,将实验板放到绝缘物体上(下面千万不要
放钥匙、螺丝刀等物体)
3.将配套的25 芯并口延长线公端和电脑相连,母端和实验板相连
4.将配套电源一端和实验板电源接口相连,另一端和220V市电相连
5.打开电源开关(如果要取下并口线,请先关闭电源,防止产生瞬时电流对你并口产生影
响)
6.在实验系统上选择好模式,下面就可以下载验证了。

(你在下载程序进行长时间运行时,
请注意芯片温度,避免因为一些失误而造成芯片损坏,如果温度很高,请及时检查原因)接着,点Programmer 或选择Tools->Programmer
在下面窗口中点击Add Hardware
此时系列会识别并口和下载电缆,如下图(注:对系统而言Byteblaster 和ByteblasterMV 都认为ByteblasterMV)
我们将看到蓝色跳不断充满,当显示100%时下载成功。

通过测试,设计的表决器功能完全正确
答案
南通大学电子信息学院
实验报告册
实验课程名称:硬件描述语言
班级:XXX
姓名:XXX
学号:XXXXXXXXX
2011-2012学年第二学期
一.表决器
1、实验目的与要求
掌握在 Quartus Ⅱ开发环境下,运用硬件描述语言输入法对“三人表决器”进行设计输入、编译、调试和仿真的方法。

“三人表决器”电路的输入为 a、b 和 c,输出为out,位宽均为 1 位。

当a、b和 c中有超过2个以上的输入为1时,
要求熟悉整个设计流程,从打开、建立文档、编辑、编译、建立激励信号波形及最后仿真的整个过程。

2、实验内容
module m1(a,b,c,out);
input a,b,c;
output out;
reg out;
always @ (a,b,c)
if(a&&b)
out=1;
else if(a&&c)
out=1;
else if(b&&c)
out=1;
else
out=0;
endmodule
3,实验结果
二.3-8译码器
1、实验相关知识简述:
in out
00000000001
00100000010
010********
01100001000
10000010000
2.实验目的: (1)熟练使用 EDA 软件(Quartus II、ModelSim);
(2)掌握用 Verilog HDL 实现组合逻辑电路和时序逻辑电路的方法。

3.实验仪器:微机一台,quartus软件一套
4.实验过程:
module m2(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
000in [0]
001in [1]
010in [2]
011in [3]
100in [4]
101in [5]
110in [6]
111in [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.实验过程:
module m81(in,out,a,b,c,d,e,f,g,h,en); input [2:0]in;
input [1:0]en;
input a,b,c,d,e,f,g,h;
output out;
reg out;
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;
else if(in==3'b001)
out=b;
else if(in==3'b010)
out=c;
else if(in==3'b011)
out=d;
else if(in==3'b100)
out=e;
else if(in==3'b101)
out=f;
else if(in==3'b110)
out=g;
else if(in==3'b111)
out=h;
else
out=1'bz;
endmodule
5.实验数据记录:
6.综合电路图:
四.挂在总线上的数据寄存器
1.实验相关知识简述:
三态总线:
D触发器:表达式:Qn+1=Qn;
2.实验目的:
掌握总线与总线操作的工作原理,以及运用Verilog HDL 进行设计、编译、调试和仿真的方法。

要求设计一个挂在总线上的 8 位数据寄存器,片选信号 ce(高电平有效),读信号 rd(高电平有效),写 we 信号(高电平有效)。

3.实验器材:
微机一台,quartus软件一套
4.实验过程:
module m4(ce,rd,we,d,clk,q);
input ce,rd,we;
input clk;
inout [31:0]d;
output [31:0]q;
reg [31:0]q;
always @(posedge clk)
if(ce&&we)
q<=d;
else
q<=q;
assign d=(rd&&ce)? q:32'bzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz; endmodule
5.实验数据记录:
四.实验总结
《硬件描述语言》是一门侧重于数字电子系统的设计和测试方法的课程,它
的上机实验是教学中的一个重要环节。

通过上机学习,学生不仅可以系统地复习.
巩固该课程的基本理论,而且培养学生解决问题能力和创新能力,同时为该课程的
课程设计作准备。

通过以上三次实验我不仅初步掌握了quartus软件的使用方法,以及数字系统设
计中关于编码器,译码器,数据选择器以及总线等部分,而且掌握了设计电路时的分析以及调试方法,我相信以后再碰到类似问题,我能轻松的解决。

相关文档
最新文档