湖南工业大学EDA——Verilog考试重点.doc_第1页
湖南工业大学EDA——Verilog考试重点.doc_第2页
湖南工业大学EDA——Verilog考试重点.doc_第3页
湖南工业大学EDA——Verilog考试重点.doc_第4页
湖南工业大学EDA——Verilog考试重点.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

一、软件的基础知识及使用1. Quartus II 是一个什么软件:是Altera公司推出的EDA软件工具,其设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器基本使用步骤:文件及工程建立;工程实现的设置;工程编译及分析;工程仿真及分析;芯片的管脚锁定;编程下载及验证2. Synplify Pro 是一个什么软件:Synplify是Synplicity公司的著名产品,它是一个逻辑综合性能最好的FPGA和CPLD逻辑综合工具。基本使用步骤:新建工程或打开工程;新建源程序并添加到工程;选择工程实现设置;选择需研究的工程并进行逻辑综合;查看有关逻辑综合结果3. Modelsim 是一个什么性质的软件?Modelsim是Model Technology公司的著名产品,支持VHDL和Verilog的混合仿真。基本使用步骤:新建或打开工程;新建源程序并添加到工程; 编译源程序;加载设计单元;建立仿真波形;运行仿真并观察结果二、SOPC概念及应用1.什么是SOPC:可编程片上系统SOPC是一种通用器件,是基于FPGA的可重构SOC,它集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑,是更加灵活、高效的SOC解决方案。2.优势:合理的性能组合;提升系统的性能;降低系统的成本;更好地满足产品生命周期的要求3. 阐述基于NIOS II的SOPC系统的设计开发流程。1)硬件设计:(1)创建一个Quartus II工程(2)创建Nios系统模块:启动SOPC Builder 添加CPU及外围器件 指定基地址 系统设置 生成系统模块(3)将图标添加到BDF原理图文件中(4)编译Quartus II的工程设计文件(5)配置FPGA2)软件设计1)启动Nios ii IDE 2)建立新的源程序和软件工程或导入已建源程序和软件工程。3)编程工程4)运行程序和调试程序。调试程序时可使用单步运行,并观察寄存器或者变量中有关参数的变化5)将程序下载到FLASH中 三、EDA仿真模型及应用1.仿真的基本步骤:(1)分析系统设计要求和设计思想,弄懂系统的工作原理,工作流程(2)了解各种输入信号及要求,设置各种输入激励信号,包括各输入信号本身的要求,相互之间的要求,各种输入信号的设置有两种:仿真波形直接设置和测试程序文本设置。测试用例应尽可能覆盖整个系统的各种可能情况 (3) 估计各种输出期望值,即对应各种可能的输入估计其输出期望值.(4)进行实际仿真及结果分析,即执行仿真操作,进行实际仿真,并将仿真结果与期望值进行比较与分析,(5)仿真改进与完善,即若仿真结果与期望值不一致,则查找原因,进行程序和仿真设置值修改。直到完全达到要求为止2. 该仿真的输入设定是否合理?并说明理由该仿真的输入设定不合理,输入端没有设定使能开关四、电子设计平台的优劣比较单片机:优点:微控制器,可实现各种逻辑和非逻辑控制,强调控制和事务处理功能,价格低廉,结构简单,实时性高 缺点:只能执行简单的控制操作,运算能力不如DSP,多任务处理不如ARMDSP:优点:专用于信号处理的微处理器,在系统结构和指令算法方面经过特殊设计,因而具有很高的编译效率和指令执行速度,内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速地实现各种数字信号处理算法 缺点:仅仅在信号处理方面独到,但要进行系统设计就要配合MCU,微处理器或者EDA技术来进行。ARM微处理器:优点:ARM采用RISC体系结构设计和多级流水线技术,具有强大的数据处理能力,单片机可以实现的功能基本上都能实现,而且拥有软件平台,可以进行多任务处理。 缺点:价格较之单片机来说贵,对于简单的控制系统单片机更合适,信号处理方面没有DSP好EDA设计:优点:运用FPGA/CPLD设计,本身并没有功能,功能完全靠编程人员设计,设计更灵活,更高效。 缺点:开发比较复杂,较之单片机,ARM,DSP等已经设计好的系统来说,完成相同功能耗费的人力物力更多,对开发人员要求很高。五、程序阅读理解与仿真分析=:阻塞过程性赋值,电路为并行图按课本=:非阻塞过程性赋值,电路为串行图按课本六、Verilog基本编程(以下大写均需改为小写)【例3.27】3-8线译码器(高电平有效)/3-8线译码器(高电平有效)decode3_8a.vmodule decoder3_8a(ain,en,yout)input en;input 2:0ain;output 7:0yout;reg7:0yout;always (en orain)beginif(!en)yout=8b00000000;elsecase(ain)3b000: yout=8b00000001;3b001: yout=8b00000010;3b010: yout=8b00000100;3b011: yout=8b00001000;3b100: yout=8b00010000;3b101: yout=8b00100000;3b110: yout=8b01000000;3b111: yout=8b10000000;deflaut: yout=8b00000000; endcaseend【例3.28】3-8线译码器(低电平有效)/3-8线译码器(低电平有效)decode3_8b.vmodule decoder3_8b(g1,g2a,g2b,c,b,a,y7,y6,y5,y4,y3,y2,y1,y0);input g1,g2a,g2b;input c,b,a;output y7,y6,y5,y4,y3,y2,y1,y0;reg y7,y6,y5,y4,y3,y2,y1,y0;always (g1 or g2a or g2b or c or b or a)begin if(g1=1b0)|(g2a=1b1)|(g2b=1b1) y7,y6,y5,y4,y3,y2,y1,y0=8b11111111; else if(g1=1b1)&(g2a=1b0)&(g2b=1b0)begin case(c,b,a)3b000 : y7,y6,y5,y4,y3,y2,y1,y0=8b11111110;3b001 : y7,y6,y5,y4,y3,y2,y1,y0=8b11111101;3b010 : y7,y6,y5,y4,y3,y2,y1,y0=8b11111011;3b011 : y7,y6,y5,y4,y3,y2,y1,y0=8b11110111;3b100 : y7,y6,y5,y4,y3,y2,y1,y0=8b11101111;3b101 : y7,y6,y5,y4,y3,y2,y1,y0=8b11011111;3b110 : y7,y6,y5,y4,y3,y2,y1,y0=8b10111111;3b111 : y7,y6,y5,y4,y3,y2,y1,y0=8b01111111;deflaut : y7,y6,y5,y4,y3,y2,y1,y0=8b11111111;endcaseend elsey7,y6,y5,y4,y3,y2,y1,y0=8b11111111;endendmodule选择器【例3.31】四选一信号选择器一module mul4_1a(y,s,x);output y;input 1:0s;input 3:0x;reg y;always (s or x)begin case(s)2b00:y=x0;2b01:y=x1;2b10:y=x2;2b11:y=x3;deflaut : y=1b0;endcaseendendmoduse【例3.33】四选一数据选择器/四选一数据选择器mul4_1c.vmodule mul4_1c(y,s,data0,data1, data2,data3);output7:0y;input1:0s;input7:0 data0,data1, data2,data3;reg y;always (s or data0 or data1 or data2 or data3) beginif(s=2b00) y=data0;else if(s=2b01) y=data1;else if(s=2b10) y=data2;else y=data3;endendmodule【例3.37】d触发器/d触发器d_ff.vmodule d_ff(d,clk,q,qn);input d;input clk;output q,qn;reg q,qn;always (posedge clk) beginq=d;qn=d;endendmodule【例3.38】非同步复位/置位的d触发器/非同步复位/置位的d触发器asynd_ff.vmodule asynd_ff(clk,d,preset,clr,q);input clk,d,preset,clr;output q;reg q;always (posedge clk) begin if(preset)q=1b1; else if(clr)q=1b0; elseq=d; endendmodule【例3.39】同步复位的d触发器/同步复位的d触发器asynd_ff.vmodule synd_ff(clk,d,reset,q);input clk,d,reset;output q;reg q;always (posedge clk) begin if(reset)q=1b0; elseq=d;endendmodule【例3.40】jk触发器/jk触发器jk_ff.vmodule jk_ff(j,k,c,q,qn);input j,k;input c;output q,qn;reg q,qn;always (negedge c) begincase(j,k) 2b00 : begin q=q; qn=qn; end; 2b01 : begin q=1b0; qn=1b1; end; 2b10 : begin q=1b1; qn=1b0; end; 2b11 : begin q=qn; qn=q; end; default : begin q=q; qn=qn; end;endcaseendendmodule【例3.42】8位数据寄存(锁存)器/8位数据寄存(锁存)器reg8.vmodule reg8(clk,d,q);input clk;input7:0d;output 7:0q;reg q;always (posedge clk) beginq=d; endendmodule【例3.44】带时钟使能的十进制同步计数器/有时钟使能的十进制同步计数器cnt10.vmodule cnt10(clk,clr,ena,cq,co);input clk;input clr;input ena;output3:0cq;output co;reg3:0cnt;reg co;/计数过程always (posedge clk or posedge clr) begin if(clr)cnt=4b0; elseif(ena) if(cnt=4h9)cnt=4h0; elseendassign cq=cnt;/控制进位输出并去毛刺always (posedge clk) beginif(cnt=4h9) co=4h1;else co=4h0;endendmodule【例3.48】将1khz的方波信号变为正负周不等的50hz信号的非均匀分频电路/将1khz的信号变为50hz非均匀分频器fjydiv.vmodule fjydiv(clk_in,reset,clk_out);input clk_in,reset;output clk_out;reg4:0cnt;reg clk_out;parameter divide_period=20;/按分频常数控制分频计数always (posedge clk_in or posedge reset)begin if(reset)cnt=0; elsebegin if(cnt=divide_period-1)cnt=0; elsecnt=cnt+1;endend/按分频常数控制分频输出always (posedge clk_in or posedge reset) if(reset)clk_out=1; elseif(cnt=divide_period-1) clk_out=1b1;else clk_out=1b0;endmodule【例3.49】将1khz的方波信号变为正负周相等的50hz信号的均匀分频电路/将1khz的信号变为50hz均匀分频器jydiv.vmodule jydiv(clk_in,reset,clk_out);input clk_in,reset;output clk_out;reg4:0cnt;reg clk_out;parameter divide_period=20;/分频常数为1000/50=20/按分频常数计数的同时控制对应的分频输出always (posedge clk_in or posedge reset) beginif(reset) begin cnt=0; clk_out=1b0; endelse if(cnt(divide_period/2)begin clk_out=1b1;cnt=cnt+1;end else if(cnt(divide_period-1) begin clk_out=1b0;cnt=cnt+1;end elsecnt=1b0;endendmodule七、Verilog综合编程 底层+顶层1. 用四个十进制计数器cnt10设计一个计数范围为09999的计数器电路cnt9999/cnt10.vmodule cnt10(clk,clr,ena,cq,co); input clr,clr,ena; output 3:0cq; output co; reg 3:0cnt; reg co; always (posedge clk or posedge clr) begin if(clr) cnt=4b0; else if(ena) if(cnt=4h9) cnt=4h0; else cnt=cnt+1; end assign cq = cnt; always (posedge clk) begin if(cnt=4h9) co=4h1; else co=4h0; endendmodule/cnt9999.vmodule cnt9999(clk,clr,ena,dout); input clk,clr,ena; output 15:0dout; wire s0,s1,s2; cnt10 u0(clk,clr,ena,cq3:0,s0); cnt10 u1(s0,clr,ena,cq7:4,s1); cnt10 u2(s1,clr,ena,cq11:8,s2); cnt10 u3(s2,clr,ena,cq15:12,co);endmodule/ctrls.vmodule ctrls(clk,sel); input clk; output 2:0sel; reg2:0cnt; always(posedge clk) begin if(cnt=4h7) cnt=4h0; else cnt=cnt+1; end assign sel=cnt;endmodule/display.vmodule display(sel,datain,com,seg); input2:0sel; input15:0datain; output7:0com; output7:0seg; reg7:0com_tem; reg7:0seg_tem; reg3:0bcd; always(sel or datain) begin case(sel) 3b000: begin bcd=datain3:0; com_tem=8b11111110; end 3b001: begin bcd=datain7:4; com_tem=8b11111101; end 3b010: begin bcd=datain11:8; com_tem=8b11111011; end 3b011: begin bcd=datain15:12; com_tem=8b11110111; end 3b100: begin bcd=8b11111111; com_tem=8b11101111; end 3b101: begin bcd=8b11111111; com_tem=8b11011111; end 3b110: begin bcd=8b11111111; com_tem=8b10111111; end 3b111: begin bcd=8b11111111; com_tem=8b0111111; end default: begin bcd=8b11111111; com_tem=8b11111111; end endcase end always(bcd) begin case(bcd) 4b0000:seg_tem=8b00111111; 4b0001:seg_tem=8b00000110; 4b0010:seg_tem=8b01011011; 4b0011:seg_tem=8b01001111; 4b0100:seg_tem=8b01100110; 4b0101:seg_tem=8b01101101; 4b0110:seg_tem=8b01111101; 4b0111:seg_tem=8b00000111; 4b1000:seg_tem=8b01111111; 4b1001:seg_tem=8b01101111; default:seg_tem=8b00000000; endcase end assign seg=seg_tem; assign com=com_tem;endmodule2. 设计一个由四个4位二进制并行加法器组成的16位二进制并行加法器/adder4b.vmodule adder4b(a4,b4,c4,s4,co4); input 3:0a4,b4; input c4; out

温馨提示

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

评论

0/150

提交评论