数字系统设计实验报告.doc_第1页
数字系统设计实验报告.doc_第2页
数字系统设计实验报告.doc_第3页
数字系统设计实验报告.doc_第4页
数字系统设计实验报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字系统设计 08电52班 08285043 马帼英实验报告课 程: 数字系统设计班 级: 08电52姓 名: 马帼英 实验日期:2011/4/112011/4/30目 录1实验一 基本组合逻辑电路设计实验32实验二 加法器设计43实验三 译码器设计64实验四 计数器设计85实验五 阻塞与非阻塞区别验证106实验六 累加器设计127实验七 数码管扫描电路设计148实验八 数字频率计设计17实验 一 实验名称: 基本组合逻辑电路设计实验第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:熟悉MAX+plus 软件的使用二、 实验电路:三、波形图:实验 二 实验名称: 加法器设计第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:(1) 复习加法器的分类及工作原理;(2) 掌握用图形法设计半加器的方法;(3) 掌握用元件例化法设计全加器的方法;(4) 掌握用元件例化法设计多位加法器的方法;(5) 掌握用Verilog HDL语言设计多位加法器的方法;(6) 学习运用波形仿真验证程序的正确性;学习定时分析工具的使用方法。二、 实验电路:三、 实验步骤:1)首先在原理图输入方式下设计出1位的半加器,并进行仿真验证;2)在原理图输入方式下采用调用半加器元件的方式设计出1位的全加器,并进行仿真验证;3)下载全加器电路,并进行在线测试。四、 实验结果分析、体会:实验过程中需注意的几点: 1)保存所设计的原理图文件时,注意后缀名为.gdf; 2)编程下载前一定要进行时序编译; 3)分配引脚时要注意输入输出端口编号一定要与实验箱上的输入输出端口引脚号相对应。五、思考题:1时序仿真波形图上出现了什么现象?其产生的原因是什么呢?如何进行消除?答:在组合逻辑中,由于多少输入信号变化先后不同、信号传输的路径不同,或是各种器件延迟时间不同(这种现象称为竞争)都有可能造成输出波形产生不应有的尖脉冲(俗称毛刺),这种现象成为冒险。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。2请比较分析用元件例化法与语言进行设计的4位加法器的定时分析结果。答:元件例化法效率高,而语言的移植性好。实验 三 实验名称: 译码器设计第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:1)掌握普通译码器和七段数码显示译码器的工作原理。2)初步掌握Verilog HDL。3)进一步熟悉设计流程。4)掌握FPGA数字逻辑实验箱七段LED数码管的使用。二、 实验电路:三、 实验程序:module decode4_7(a,b,c,d,e,f,g,D3,D2,D1,D0);output a,b,c,d,e,f,g;input D3,D2,D1,D0;reg a,b,c,d,e,f,g;always (D3 or D2 or D1 or D0) begin case(D3,D2,D1,D0) 0:a,b,c,d,e,f,g=7b1111110; 1:a,b,c,d,e,f,g=7b0110000; 2:a,b,c,d,e,f,g=7b1101101; 3:a,b,c,d,e,f,g=7b1111001; 4:a,b,c,d,e,f,g=7b0110011; 5:a,b,c,d,e,f,g=7b1011011; 6:a,b,c,d,e,f,g=7b1011111; 7:a,b,c,d,e,f,g=7b1110000; 8:a,b,c,d,e,f,g=7b1111111; 9:a,b,c,d,e,f,g=7b1111011; default:a,b,c,d,e,f,g=7bx; endcase endendmodule四、 实验步骤:1)使用文本(Verilog HDL)输入法设计一个 3线_8线译码器,进行功能仿真。2)使用文本(Verilog HDL)输入法设计一个 共阴极七段数码显示译码器,仿真并下载测试。五、 波形图:六、 实验结果分析、体会:实验过程中需注意的几点: 1)所保存文件的后缀名为.v。 2)所保存文件名必须与所定义模块名一致。3)注意显示译码器7个输出端口的引脚号应与实验箱上LED数码管引脚编号箱对应。七、 思考题若要求显示数字0F,decode4-7程序应该怎样修改?答:在case语句中增加以下几句: a: a,b,c,d,e,f,g=7b1110111; b: a,b,c,d,e,f,g=7b0011111; c: a,b,c,d,e,f,g=7b1001110; d: a,b,c,d,e,f,g=7b0111101; e:a,b,c,d,e,f,g=7b1101111; f: a,b,c,d,e,f,g=7b1001111;实验 四 实验名称: 计数器设计第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:1)学习掌握计数器不同设计方法。2)掌握“总线”的画法。3)掌握复杂时序电路的仿真过程。4)熟练掌握FPGA数字逻辑实验箱的使用。二、 实验电路:三、 实验程序:module count10(clk,d,clr,load,out);input clk,clr,load;input 3:0d;output 3:0out;reg3:0out;always(posedge clk or negedge clr)begin if(!clr) out=0;else if(load) out=d;else if(out=9) out=0;else out=out+1;endendmodule四、 实验步骤:1)分别用原理图法和文本法设计一个十进制计数器,并进行功能仿真和时序仿真。2)比较两种不同设计方法的结果,分析并总结。3)下载该电路,并进行在线测试。五、 波形图:六、 实验结果分析、体会实验过程中需注意的几点: 1)注意原理图中总线的画法及总线及其支路的命名。 2)注意Verilog 源程序中总线的命名方法。 3)分配引脚号时要注意将CLK端选为实验箱脉冲源所对应的引脚号。 七 、思考题(1) 在程序count10.v中,请将“异步清零”端改为“同步清零”。答:只要将always(posedge clk or negedge clr)改成always(posedge clk)(2) 请在程序count10.v的基础上编写带置数功能的六十进制计数器。module count60(qout,cout,data,load,cin,rest,clk)input load,cin,clk,rest;input7:0 data;output 7:0 qout;output cout;reg7:0 qout;always(posedge clk)begin if(reset) qout=0;else if(load) qout=0;else if(cin) begin if(qout3:0=9)begin qout3:0=0;if(qout7:4=5) qout7:4=0;else qout7:4=qout7:4+1;end endasssign cout=(qout=8d59)&cin)?1:0;endmodule实验 五 实验名称: 阻塞与非阻塞语句区别验证第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:1) 深入理解阻塞赋值与非阻塞赋值的概念及其区别;2) 进一步掌握Verilog HDL语言;3) 提高分析比较不同仿真波形结果的能力。二、 实验程序:module start(a,b,c,clk);input clk,a;output b,c;reg b,c;always (posedge clk)beginb=a;c=b;endendmodulemodule start2(a,b,c,clk);input clk,a;output b,c;reg b,c;always (posedge clk) b=a;always (posedge clk) c=b;endmodulemodule stop11(a,b,c,clk);input clk,a;output b,c;reg b,c;always (posedge clk)beginb=a;c=b;endendmodulemodule stop3(a,b,clk);input clk;output a,b;reg a,b;always (posedge clk)beginb=a;a=b;endendmodule三、 实验步骤:将【设计示例】所给的两段Verilog源程序补充完整,给其添加相同的输入激励波形,分别进行功能仿真。比较仿真结果,判断阻塞赋值语句与非阻塞赋值语句的区别。四、 波形图:五、 实验结果分析、体会阻塞语句的执行结果总是比非阻塞语句慢一个周期。六、思考题(1) 阻塞与非阻塞的区别?答:阻塞赋值的前面赋值语句没有完成之前,后面的语句就不能被执行,仿佛被阻塞了一样。而非阻塞语句在整个过程块结束时才完成。(2)将always(posedge clk)beginb=a;c=b;end替换成always (posedge clk)beginb=a;c=b;end仿真结果如在上面的报告中。实验 六 实验名称: 累加器设计第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:1)学习累加器的基本原理。2)了解多层次结构的设计思路。3)学会综合应用原理图和文本相结合的设计方法。二、 实验电路:三、 实验程序:module add8(sum,cout,a,b,cin);output7:0 sum;output cout;input7:0 a,b;input cin;assign cout,sum=a+b+cin;endmodulemodule reg8(qout,in,clk,clr);output7:0 qout;input7:0 in;input clk,clr;reg7:0 qout;always (posedge clk or posedge clr)begin if(clr) qout=0;else qout=in;endendmodule四、 实验步骤:1)在文本输入方式下设计分别设计出8位的全加器和8位的寄存器,并分别存为add8.v和reg8.v。2)在原理图输入方式下通过调用两个模块设计出累加器电路,并存为acc.gdf。3)对累加器电路进行仿真验证其功能。五、 波形图:六、 实验结果分析、体会实验过程中需注意的几点: 1)注意三个文件要各存成一个文件,并且一定要放在同一个路径下; 2)注意在对累加器进行仿真时,所给的波形应该能体现出累加变化的值。 实验 七 实验名称: 数码管扫描显示电路设计第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:1)掌握数码管扫描显示原理。2)进一步掌握多层次结构电路的设计。3)掌握复杂时序电路的仿真及测试方法。二、 实验电路:三、 实验程序:module count6(clk,Q);input clk;output 2:0Q;reg2:0Q;always (posedge clk)beginif(Q=5)Q=0;else Q=Q+1;endendmodulemodule decode(D,a,b,c,d,e,f,g);input 2:0D;output a,b,c,d,e,f,g;reg a,b,c,d,e,f,g;always(D)begincase(D)0:a,b,c,d,e,f,g=7b1101101;1:a,b,c,d,e,f,g=7b1111110;2:a,b,c,d,e,f,g=7b0110000;3:a,b,c,d,e,f,g=7b0110000;4:a,b,c,d,e,f,g=7b1111110;5:a,b,c,d,e,f,g=7b1011011;default:a,b,c,d,e,f,g=7b0000000;endcaseendendmodulemodule decode3_6(D,Y);input 2:0D;output5:0Y;reg5:0Y;always(D)begincase(D)0:Y=6b000001;1:Y=6b000010;2:Y=6b000100;3:Y=6b001000;4:Y=6b010000;5:Y=6b100000;default:Y=6b000000;endcaseendendmodule四、 实验步骤:1)分别用Verilog设计出计数模块、译码模块及显示译码模块,仿真通过后,生成符号。2)在原理图输入方式下通过调用三个子模块设计出数码管扫描显示电路,并进行时序仿真。3)下载该电路,并进行在线测试。五、 波形图:六、 实验结果分析、体会实验过程中需注意的几点: 1)注意三个子模块和顶层文件一定要放在同一个路径下; 2)注意共阴极和共阳极Verilog程序编写的不同。七、思考题请用Verilog HDL语言编写8位累加器电路顶层模块的源程序。module ljq_8(IN,CIN,CLK,CLR,OUT,COUT);input IN,CIN,CLK,CLR;output OUT,COUT;reg 7:0SUM;add8(SUM,COUT,OUT,IN,CIN);reg8(OUT,SUM,CLK,CLR)endmodule实验 八 实验名称: 数字频率计设计第 1 组 同组人: 刘秀秀,马帼英一、 实验目的:1)学会数字频率计的设计方法。2)掌握自顶向下的数字系统设计方法,并体会其优越性。二、 实验电路:三、 实验程序:控制:module ctrl(clk,rst,en,clr,load);input clk,rst;output en,clr,load;reg en,load;always (posedge clk)beginif(rst) begin en=0;load=1;endelsebegin en=en;load=en;endendassgin clr=(clk)&load;endmodule锁存:module latch_16(qo,din,load);output15:0 qo;input15:0 din;input load;reg15:0 qo;always (posedge load)qo=din;endmodule4-7译码器:module decode4_7(a,b,c,d,e,f,g,D3,D2,D1,D0);output a,b,c,d,e,f,g;input D3,D2,D1,D0;reg a,b,c,d,e,f,g;always (D3 or D2 or D1 or D0) begin case(D3,D2,D1,D0) 0:a,b,c,d,e,f,g=7b1111110; 1:a,b,c,d,e,f,g=7b0110000; 2:a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论