ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:468.71KB ,
资源ID:18670952      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18670952.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Verilog冒泡排序文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Verilog冒泡排序文档格式.docx

1、实验报告提交时间: 2012.11.11 实验要求:1、掌握任务在Verilog模块设计中的应用;2、学会在电平敏感列表的always中使用拼接操作、任务和阻塞赋值等语句,并生成复杂组合逻辑的高级方法;3、掌握利用有限状态机实现一般时序逻辑分析的方法;4、掌握用Verilog编写可综合的有限状态机的标准模版;掌握用Verilog编写状态机模块的测试文件的一般方法。实验容:1、设计一个功能相同的模块,该模块能完成四个8位2进制输入数据的冒泡排序。假设8位数据是按照时钟节拍串行输入的,要求用时钟触发任务的执行法,每个时钟周期完成一次数据交换的操作。2、使用纯组合逻辑实现四个8位2进制输入数据的冒泡

2、排序。实验代码:A.Verilog程序代码_时钟触发module Rank(clk,x_input,ra0,rb0,rc0,rd0,ra1,rb1,rc1,rd1);input clk;reg3:0 state;input 7:0 x_input;output7:0 ra0,rb0,rc0,rd0,ra1,rb1,rc1,rd1;reg7:0 va,vb,vc,vd;parameter IDLE0=d0,IDLE1=d1,IDLE2=d2,IDLE3=d3,A=d4,B=d5,C=d6,D=d7,E=d8;always(posedge clk) casex(state) IDLE0:begin

3、 va=x_input;state=IDLE1; end IDLE1: vb=x_input;=IDLE2; IDLE2: vc=x_input;=IDLE3; end IDLE3: vd=x_input; state=A; ra0,rb0,rc0,rd0=va,vb,vc,vd; end A: sort2(va,vc);=B; B: sort2(vb,vd);=C; C: sort2(va,vb); statey) begin tmp=x;x=y;y=tmp; end endtask endmodule A.Verilog测试代码_时钟触发 module Test; / Inputs reg

4、 clk; reg 7: / Outputs wire 7:0 ra0;0 rb0;0 rc0;0 rd0;0 ra1;0 rb1;0 rc1;0 rd1; / Instantiate the Unit Under Test (UUT) Rank uut ( .clk(clk), .x_input(x_input), .ra0(ra0), .rc0(rc0), .rb0(rb0), .rd0(rd0), .ra1(ra1), .rb1(rb1), .rc1(rc1), .rd1(rd1) );always #10 clk=clk;always (posedge clk)x_input=$ran

5、dom%256;/保证随机数不大于8位 initial / Initialize Inputs clk = 0; x_input = 0; #100 $stop;endmodule仿真波形RTL级仿真:综合后门级仿真:B.Verilog程序代码_纯组合逻辑module Rank(ra,rb,rc,rd,a,b,c,d);0 a, b, c, d;0 ra,rb,rc,rd;always(a or b or c or d) va,vb,vc,vd=a,b,c,d; sort2(va,vc); sort2(vb,vd); ra,rb,rc,rd=va,vb,vc,vd; end reg7: x=y

6、; y=tmp;B.Verilog测试代码_纯组合逻辑module Test;0 a;0 b;0 c;0 d;0 ra;0 rb;0 rc;0 rd; .ra(ra), .rb(rb), .rc(rc), .rd(rd), .a(a), .b(b), .c(c), .d(d) initial begin a = 0; b = 0; c = 0; d = 0; repeat(50) begin #100 a=$random%256; b=$random%256; c=$random%256; d=$random%256; / Wait 100 ns for global reset to fin

7、ish / Add stimulus here仿真结果:实验过程分析:一、代码分析I. 对于纯组合逻辑做法。第一种做法主要同过书写一个task,这一点有点类似C语言的子函数。随后便是利用这个task做简单的纯组合逻辑电路设计II. 对于时序触发做法。第二种做法主要使用状态机,通过一个始终周期的到来先进行数据的串行输入,然后再进行数据交换,以此达到冒泡排序的目的。2、仿真分析在clk前四个时钟周期里,进行了数据的输入,此时并未排序。从第五个时钟周期开始到第九个时钟周期结束,数据进行冒泡排序并输出。接下来循环50次。 在波形上已经很清晰的指出输入数据以此冒泡排序后的数据,不涉及任何延迟。实验心得总结:通过这一次的实验,可以说是悲剧万分呀。主要还是对于时钟触发这种做法不太理解,从一开始的完全一头雾水到最后做到较为透彻的理解,这一过程十分不容易。通过本次实验,学会了状态机的书写方法,重要的是学会了仿真代码的书写方法。并且靠自己读懂了仿真波形。指导教师批阅意见:成绩评定: 指导教师签字: 年 月 日备注:注:1、报告的项目或容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1