采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告

上传人:aa****6 文档编号:35530837 上传时间:2018-03-17 格式:PDF 页数:12 大小:197.47KB
返回 下载 相关 举报
采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告_第1页
第1页 / 共12页
采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告_第2页
第2页 / 共12页
采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告_第3页
第3页 / 共12页
采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告_第4页
第4页 / 共12页
采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告》由会员分享,可在线阅读,更多相关《采用Verilog语言设计连续输入数据处理模块 《电子系统设计》课程设计报告(12页珍藏版)》请在金锄头文库上搜索。

1、 交通大学理工学院交通大学理工学院交通大学理工学院交通大学理工学院 课课课课 程程程程 设设设设 计计计计 报报报报 告告告告 书书书书 所属课程名称所属课程名称所属课程名称所属课程名称 电子系统设计电子系统设计电子系统设计电子系统设计 题题题题 目目目目 连续输入数据处理连续输入数据处理连续输入数据处理连续输入数据处理 分分分分 院院院院 电电电电 信信信信 分分分分 院院院院 专业班级专业班级专业班级专业班级 学学学学 号号号号 学生姓名学生姓名学生姓名学生姓名 指导教师指导教师指导教师指导教师 第 2 页 共 12 页 交大理工学院电信分交大理工学院电信分交大理工学院电信分交大理工学院电

2、信分院院院院 目目目目 录录录录 第一章: 课程设计任务书第一章: 课程设计任务书第一章: 课程设计任务书第一章: 课程设计任务书* (3) 第二章: 程序设计目的第二章: 程序设计目的第二章: 程序设计目的第二章: 程序设计目的* (4) 第三章: 程序实现思路第三章: 程序实现思路第三章: 程序实现思路第三章: 程序实现思路* (5) 第四章: 源程序代码第四章: 源程序代码第四章: 源程序代码第四章: 源程序代码*(7) 第五章: 课程设计心得第五章: 课程设计心得第五章: 课程设计心得第五章: 课程设计心得*(10) 第 3 页 共 12 页 第六章:参考文献第六章:参考文献第六章:参

3、考文献第六章:参考文献*(11) 第第第第 1 1 1 1 章章章章 课课课课程程程程设计设计设计设计任任任任务书务书务书务书 交交交交 通通通通 大大大大 学学学学 理理理理 工工工工 学学学学 院院院院 课课课课 程程程程 设设设设 计(计(计(计( 论论论论 文文文文 )任)任)任)任 务务务务 书书书书 专专专专 业业业业 电子信息工程电子信息工程电子信息工程电子信息工程 班班班班 级级级级 三班三班三班三班 姓名姓名姓名姓名 一、课程设计(论文)题目一、课程设计(论文)题目一、课程设计(论文)题目一、课程设计(论文)题目 连续输入数据处理连续输入数据处理连续输入数据处理连续输入数据处

4、理 二、课程设计(论文)工作:自二、课程设计(论文)工作:自二、课程设计(论文)工作:自二、课程设计(论文)工作:自 2009 2009 2009 2009 年年年年 12 12 12 12 月月月月 11 11 11 11 日起至日起至日起至日起至 年年年年 12 12 12 12 月月月月 21 21 21 21 日止。日止。日止。日止。 三、课程设计(论文)的内容要求:三、课程设计(论文)的内容要求:三、课程设计(论文)的内容要求:三、课程设计(论文)的内容要求: 第 4 页 共 12 页 设计一个模块(写出设计一个模块(写出设计一个模块(写出设计一个模块(写出 VerilogVeril

5、ogVerilogVerilog 描述、模拟并综合) ,模块的数据以串行描述、模拟并综合) ,模块的数据以串行描述、模拟并综合) ,模块的数据以串行描述、模拟并综合) ,模块的数据以串行方式输入,模块根据输入数据的数目决定其具体操作类型。根据题目要求方式输入,模块根据输入数据的数目决定其具体操作类型。根据题目要求方式输入,模块根据输入数据的数目决定其具体操作类型。根据题目要求方式输入,模块根据输入数据的数目决定其具体操作类型。根据题目要求写出设计思想概述,描绘出设计的状态图,画出设计的电路图,编写写出设计思想概述,描绘出设计的状态图,画出设计的电路图,编写写出设计思想概述,描绘出设计的状态图,

6、画出设计的电路图,编写写出设计思想概述,描绘出设计的状态图,画出设计的电路图,编写VerilogVerilogVerilogVerilog 程序,再通过仿真软件在电脑上输出仿真波形,比较仿真波形,程序,再通过仿真软件在电脑上输出仿真波形,比较仿真波形,程序,再通过仿真软件在电脑上输出仿真波形,比较仿真波形,程序,再通过仿真软件在电脑上输出仿真波形,比较仿真波形,对设计结果进行分析处理对设计结果进行分析处理对设计结果进行分析处理对设计结果进行分析处理. . . . 学生签名:学生签名:学生签名:学生签名: ( ( ( ( ) ) ) ) 200 200 200 200 年年年年 月月月月 日日日

7、日 课程设计(论文)评阅意见课程设计(论文)评阅意见课程设计(论文)评阅意见课程设计(论文)评阅意见 评阅人评阅人评阅人评阅人 职称职称职称职称 200 200 200 200 年年年年 月月月月 日日日日 序号 项 目 等 级 优秀 良好 中等 及格 不及格 1 课程设计态度评价 2 出勤情况评价 3 任务难度评价 4 工作量饱满评价 5 任务难度评价 6 设计中创新性评价 7 论文书写规范化评价 8 综合应用能力评价 综合评综合评综合评综合评定等级定等级定等级定等级 第 5 页 共 12 页 第第第第2 2 2 2章章章章 程序设计目的程序设计目的程序设计目的程序设计目的 试设计一个模块(

8、写出 Verilog 描述,模拟并综合),完成如下功能: 模块的数据以串行方式输入,以输入控制信号 Start1 表示输入数据有效,并以 8b0 表示一组输入数据的结束。 模块根据输入数据的数目(连续串行输入的输入数据数目不超过 20 个)决定其具体操作类型,即: l 若输入数据为 4 个,依次为 x1、x2、x3、x4,则 y4 = x1*x2 + x1*x3 +x1*x4 +x2*x3 + x2*x4 + x3*x4, 否则 y4为高阻态; l 若输入数据为 3 个,依次为 x1、x2、x3,则 y3 = x1*x2 + x1*x3 +x2*x3, 否则 y3为高阻态; l 若输入数据少于

9、 3 个或多于 4 个,则将每一个输入数据 xi分为高 4 位 xih和低 4 位 xil并相乘, y = i=1i=n(xih*xil) 否则 y 为高阻态。 输出 Done 表示一次数据处理结束,其有效电平为高,维持一个时钟周期。 Start Serial_in y4 y3 y Done 对题目的说明: 1, 当 Start 信号变为低的时候, 表示输入数据无效, 系统回到初始状态。 2,当 Rst 信号变为低的时候,系统复位。 3,数据输入的过程中,系统可以在任意时刻复位。 4,输入数据人为地不超过 20 个。 第 6 页 共 12 页 第第第第 3 3 3 3 章章章章 程序实现思路程

10、序实现思路程序实现思路程序实现思路 一、设计思想概述 考虑到这是一个时序题目,这就涉及到结果的输出延时问题。是在数据输入结束后立刻流出结果,还是允许延时若干时钟周期后再流出结果,要根据具体的性能要求来决定。在我们小组的设计中,采取尽快流出结果的设计方式。即当输入 8 位全零的数据时,在时钟下一拍就可以得到计算结果。 借鉴计算机体系结构中的流水的思想,可以考虑数据一边输入一边送入相关的功能部件进行计算,主要是加法器和乘法器。应该尽可能选择低位数的加法器和乘法器以减少设计成本。本实验共涉及到 3 个加法器和 2 个乘法器。加法器分别是 11 位,14 位和 18 位。乘法器分别是 8 位和 18

11、位。 二、各站的描述 基本的数据流程如下,触发器由一个时钟 clk 统一控制。数据选择器在此没有画出。 Serial_in clk clk clk clk Z0 Z1Z6 Z2 Z5 Xih4 Xil4 Z3 Z4 sel sel 三、FSM 图示描述 全部程序共包括 9 个状态, 根据输入数据是否为全零来判断选择状态的转化。初始状态设置为 State0。StateY, StateY3, StateY4 分别是运算状态。 第 7 页 共 12 页 四、仿真波形比较 选用仿真软件:ModelSim SE 5.8c 根据前面的测试码的输入验证逻辑功能 Serial_in= 8b0010_0010;

12、 Serial_in= 8b0001_0100; Serial_in= 8b0000_0000; 按逻辑结果为 2*2+1*4=8 二进制结果为:1000 Serial_in= 8b0000_0101; Serial_in= 8b0000_0011; Serial_in= 8b0001_0010; Serial_in= 8b0000_0000; 按逻辑结果为=5*3+5*18+3*18=159; 二进制结果为:10011111 Serial_in= 8b0000_0010; Serial_in= 8b0000_0011; Serial_in= 8b0001_0000; Serial_in= 8

13、b0000_1011; Serial_in= 8b0000_0000; 逻辑结果为:2*3+2*16+2*11+3*16+3*11+16*11=317 二进制:100111101 通过仿真可以看出,基本的逻辑功能得到了正确的实现,而且数据一旦输入完毕,结果在时钟下一拍立刻输出,实时性得到了证实。 五、RTL 级电路 Software: Synplify Pro 5.2 Technology: Altera MAX9000 Port: EPM9320 Frequency: 100MHz 六、结果设计分析 1、 逻辑级数比较长,延时可能比较大 2、3 个加法器,2 个乘法器 3、4 个数据选择器,

14、3 个三态门 4、4 个 D 触发器,1 个 ROM 5、基本逻辑功能得到实现综合后的图和与预计的图相比较相差不大,综合后的图所用器件不多,综合频率很高,能够很好地节约成本,从逻辑结构上来看电路也得到了优化第 8 页 共 12 页 第第第第 4 4 4 4 章章章章 程序正文程序正文程序正文程序正文 主程序源代码: module mainprogram(Y,Y3,Y4,Done,Serial_in,clk,Rst,Start); input7:0 Serial_in; / 8 bit input input clk,Start,Rst; output Y,Y3,Y4,Done; / outpu

15、t signals reg Done; reg2:0 Sel; /select signal reg13:0 Y; reg17:0 Y3; reg18:0 Y4; reg7:0 Z0; reg10:0 Z1,Z6; reg18:0 Z2,Z5; reg13:0 Z3,Z4; /inner register define reg3:0 present_state, Next_state; /state define parameter State0= 4b0000, /gray code State1= 4b0001, State2= 4b0011, State3= 4b0010, State4

16、= 4b0110, State5= 4b0100, StateY= 4b1100, StateY3=4b1000, StateY4=4b1001; always(posedge clk) /or negedge Rst or negedge Start) begin if(!Rst) begin Z0=8b0; Z4=14b0; Z5=19b0; Z6=11b0; present_state=State0; / state jump end else begin if(!Start) begin Z0=8b0; Z4=14b0; Z5=19b0; Z6=11b0; present_state=

17、State0; end /Start=0 then jump to state else Z0=Serial_in; 第 9 页 共 12 页 Z4=Z3; Z5=Z2; Z6=Z1; /inner register relation present_state=Next_state; end end always(Z0 or Z4 or Z5 or Z6 or Rst or Start) /data process begin if(!Rst)|(!Start) begin Z1=10b0; Z2=18b0; Z3=13b0; end else Z1=Z0+Z6; Z2=Z0*Z6+Z5;

18、Z3=Z07:4*Z03:0+Z4; end always(present_state or Serial_in) begin case(present_state) State0: /initial process begin Sel=3b000; if(!Serial_in) Next_state=State0; else Next_state=State1; / state jump end State1: begin if(!Serial_in) Next_state=StateY; else Next_state=State2; end State2: begin if(!Seria

19、l_in) Next_state=StateY; else Next_state=State3; end State3: begin if(!Serial_in) Next_state=StateY3; 第 10 页 共 12 页 else Next_state=State4; end State4: begin if(!Serial_in) Next_state=StateY4; else Next_state=State5; end State5: begin if(!Serial_in) Next_state=StateY; else Next_state=State5; end Sta

20、teY: /output process begin Sel=3b100; Next_state=State0; end StateY3: begin Sel=3b010; Next_state=State0; end StateY4: begin Sel=3b001; Next_state=State0; end default: Next_state=State0; endcase end always(Sel or Z0 or Z4 or Z5 or Z6) /output selection case(Sel) 3b000: begin Y=14bz; Y3=19bz; Y4=18bz

21、; Done= 1b0; end 3b100: begin Y=Z4; Y3=19bz; Y4=18bz; Done= 1b1; end 3b010: begin Y=14bz; Y3=Z5; Y4=18bz; Done= 1b1; end 3b001: begin Y=14bz; Y3=19bz; Y4=Z517:0;Done= 1b1; end default: begin Y=14bz; Y3=19bz; Y4=18bz; Done= 1b0; end endcase endmodule 第 11 页 共 12 页 第第第第5 5 5 5章章章章 课程设计心得课程设计心得课程设计心得课程

22、设计心得 几点设计感悟 1、很多的方面需要考虑,遇到了很多没有想到的问题,只有做过才会知道。For example 不同 always 语句中不能对同一个变量赋值,仿真没有错误,综合时才发现。连续赋值和阻塞赋值不能写在一个循环里等等。 2、多请教一些老师朋友对自己的设计会有很大帮助。 3、对仿真综合软件的使用参考一些书籍,尽快熟练掌握软件使用。 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异。 通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的,只有把

23、所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。第 12 页 共 12 页 第第第第 6 6 6 6 章章章章 参考文献参考文献参考文献参考文献 1 苏金明, 周建斌. 用 VB.NET 和 VC#.NET 开发交互式 CAD 系统M. 北京:电子工业出版社,2004 2 普悠玛. VB.NET 程序设计示例导学M. 北京:科海电子出版社,2003 3 李万红,段恒勇. VB.NET 实用培训教程M. 北京:清华大学出版社,2002 4 李万红, 梁靓. VB.NET 程序设计入门M. 北京: 清华大学出版社, 2002 5 刘斌文. 精通 Visual Basic.NET 中文版M. 北京:机械工业出版社,2004

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号