- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Verilog程序设计报告
一、课题概述:
任务:本实验主要完成8位比较器、分频器、阻塞赋值和非阻塞赋值的区别、
8路的数据选择器、有限状态机的设计。
目的:
通过实验掌握基本组合逻辑电路、时序逻辑电路的实现流程;条件语句
及case语句的用法;在实验中认识阻塞赋值和非阻塞赋值的区别;能够设计出
简单的有限状态机。
要求:熟练掌握verilog的基本语法知识和一些基本语句的用法。
二、设计思路及采取方案
思路:
(1)8位比较器可以用数据流描述方法(assign赋值语句)或行为描述
方法(always语句)或结构描述方法(元件例化)实现。
(2)分频器可以采用if…else语句或case语句实现。
(3)阻塞赋值和非阻塞赋值的区别可以通过观察波形图及分析综合出
的电路图来得到。
(4)8位数据选择器可以采用assign赋值语句及always语句实现。
(5)有限状态机可以采用case语句实现。
方案:(1)8位的比较器采用assign赋值语句实现。
(2)用if…else条件语句实现分频器的设计。
(3)通过观察波形图,得出利用阻塞赋值和非阻塞赋值设计电路的
1
特点和区别。
(4)利用always语句实现8位数据选择器。
(5)利用case语句完成有限状态机的设计。
三、实验结果
结果:我基本完成以上的5个任务,并且通过这些任务的完成,巩固了已
经学过的知识,提高了自己的动手操作能力,坚定了继续学习的信心。
四、实验体会
体会:第一次接触学习硬件编程语言,感受到verilog与软件编程语言有着
许多显著的差别,最重要的是用verilog可以编出并行执行的程序,通过不断的
学习和实践,习惯了用硬件结构思路编程,由于一些细节把握不到位,在设计中
出现了许多错误;像进程赋值语句声明寄存器变量时格式出错、begin-end声明
语句没有注意相互匹配、在声明语句的末尾忘了写上分号等等。编译不成功时,
我会不厌其烦的去查找错误,直至编译成功、满足题目的要求。
通过实验不仅巩固了已经学过的知识而且加强了自己的动手操作能力,为以
后的考研及工作打下了基础。
五、参考文献
文献:(1)刘宝琴:数字电路与系统[M]。北京:北京清华大学出版社,
1993。
(2)夏宇文:复杂数字电路与系统的VerilogHDL设计技术[M]。北京:北京
航天航空大学出版社。
(3)夏宇文:Verilog数字设计教程[M]。北京航天航空大学出版社,2003。
2
六、源程序文档
练习题1:设计一个字节(8位)的比较器。
【代码】:
modulecompare(equal,a,b);
input[7:0]a,b;
outputequal;
assignequal=(a==b)?1:0;
endmodule
【波形图】:
LessThan0
b[7..0]A[7..0]
OUTc
a[7..0]B[7..0]
LESS_THAN
练习题2:利用10MHZ的时钟,设计一个单周期形状的周
期波形。
【代码】:
modulefdivision(rst,out,clk);
inputrst,clk;
文档评论(0)