华中科技大学Verilog语言实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业:计算机科学与技术班级:CS1409
学号:U*********
*名:***
电话:158****5005
邮件:*****************完成日期:2016.6.13 2016
Verilog 语言·实验报告·
计算机科学与技术学院
目录
1数据通路实验 (1)
1.1实验目的 (1)
1.2实验内容及要求 (1)
1.3实验方案 (2)
1.4实验步骤 (2)
1.5故障及分析 (2)
1.6仿真与结果 (3)
1.7心得与体会 (4)
2FSM实验 (5)
2.1实验目的 (5)
2.2实验内容及要求 (5)
2.3实验方案 (6)
2.4实验步骤 (6)
2.5故障及分析 (7)
2.6仿真与结果 (7)
2.7心得与体会 (8)
3意见和建议 (9)
4附录 (10)
1 数据通路实验
1.1 实验目的
综合应用掌握的简单组合电路和时序电路的设计方法,完成一个简单的数据通路的设计。
1.2 实验内容及要求
1. 根据下图给出的数据通路(图中R0、R1和ACC是寄存器,+是加法器,其它则是多路选择器),完成相应的Verilog程序设计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位;
2. 根据下图给出的数据通路(图中SUM和NEXT是寄存器,Memory是存储器,+是加法器,==0是比较器,其它则是多路选择器),完成相应的Verilog程序设计,图
中数据线的宽度为8位,要求可以扩充至16位或者是32位。
实验要求:程序必须自己编写,满足数据通路设计要求,综合结果正确。
1.3 实验方案
根据要求,先把选择器、加法器、寄存器、比较器和存储器分模块编写,在主模块中根据数据通路调用即可。题目中要求数据线宽度为8位,并且可以扩充至16位或32位,所以在前面定义WIDTH,利用parameter的参数传递功能来实现。
1.4 实验步骤
1.分模块编写代码(见附录)
2.运行综合Run Synthesis
3.综合成功后检查RTL Analysis中的电路图Schematic
1.5 故障及分析
刚开始跑出来很多线是断的,后来发现是引脚对应部分的代码没有写完整。后来加法器和ACC的参数顺序写错,导致接线与题给的不一致,发现问题后及时改正了。
1.6 仿真与结果
Schematic图形如下:第一个数据通路:
第二个数据通路:
由以上两图可得,成功完成了要求的数据通路的设计,满足了各基本器件的输入输出链接要求;改变数据线宽度后再检查电路图,发现数据线做出相应改变,完成该实验。
1.7 心得与体会
对数据通路的设计有了更好的理解,明白了数据通路的基本器件构成,熟悉了这些器件的功能和端口,掌握了Verilog完成基本运算器件的设计,完成了数据通路的设计。
2 FSM实验
2.1 实验目的
掌握用Verilog语言进行FSM设计、实现和仿真的方法。
2.2 实验内容及要求
5.1_1、用FSM实现一个mealy型序列检测器,对一位的串行输入序列中的“1”的数量进行检测。如果“1”的总数可以被3整除,输出“1”,否则输出“0”。
5.1_2、用FSM实现一个moore型序列检测器,对两位的串行输入序列进行检测。输入01,00时,输出0,输入11,00时,输出1,输入10,00时,输出反向。
5.1_3、用FSM实现一个计数器(采用存储器),对一位的输入进行计数。计数序列为:000,001,011,101,111,010。
5.2、用FSM实现一个序列识别器,该FSM的状态转移图如下所示,它能够对一位的串行输入序列中的“1”的数量进行检测。如果FSM发现输入“1”的总数可以被3整除时,输出“1”;否则,输出“0”。同时针对“***********”输入序列,写出相应的仿真程序并进行真波测试。
2.3 实验方案
先根据要求画出状态图,根据状态图编写程序,根据程序编写仿真程序,最后得出结果和结论。
2.4 实验步骤
5.1_1状态图:
in=1/0
in=0/0
in=1/0 in=1/0
in=1/1
5.1_2状态图:
in=00
in=01 in=10 in=11
in=00 in=00 in=00
out=0 out 翻转 out=1
S0 S1
S4 S3
S0
S1 S2
S3
S4 S5 S6
5.1_3状态图:
1.根据以上状态图编写源程序(见附录)
2.运行综合Run Synthesis
3.综合正确后编写仿真程序
4.仿真,得到仿真波形,验证结果
2.5 故障及分析
无故障
2.6 仿真与结果
5.1_1:如图,1的个数是3的倍数时输出1
与预期一致
5.1_2:如图,输入01后再输入00,输出0;输入11后再输入00,输出1;输入10后再输入00,输出翻转:
与预期一致
5.1_3:如图,输出序列为000,001,011,101,111,010(重复)
与预期一致
5.2:如图,1的个数是3的倍数时输出1
与预期一致
2.7 心得与体会
这次实验通过FSM设计明白了设计的过程和步骤,首先要知道分为哪些状态,设计的是何种电路,如何选择用mealy还是moore型电路,状态转移要如何实现。知道了mealy型和moore型电路的区别:当要求输出对输入快速响应并希望电路简单时选择mealy型,当要求时序输出稳定,能接受输出序列晚一个周期,即选择moore型电路不增加电路复杂性时,选择moore型电路。