Verilog语言与FPGA数字逻辑设计实用教案_第1页
Verilog语言与FPGA数字逻辑设计实用教案_第2页
Verilog语言与FPGA数字逻辑设计实用教案_第3页
Verilog语言与FPGA数字逻辑设计实用教案_第4页
Verilog语言与FPGA数字逻辑设计实用教案_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、对听众(tngzhng)要求 有扎实的数字电路基础; 有Verilog & FPGA设计经历; 精通带小数点的加减( ji jin)运算。第1页/共66页第一页,共67页。第2页/共66页第二页,共67页。数字(shz)逻辑电路数字逻辑电路组合逻辑电路时序逻辑电路组合电路:一个电路,在某一时刻(shk),它的输出仅仅由该时刻(shk)的输入所决定。(蔡惟铮. 基础电子技术. 北京:高等教育出版社,2007)时序电路:一个电路,在某一时刻(shk),它的输出不仅仅由该时刻(shk)的输入所决定,还取决于过去的输入。 (蔡惟铮. 基础电子技术. 北京:高等教育出版社,2007)第3页/共6

2、6页第三页,共67页。组合(zh)电路:基本逻辑门 组合电路(dinl)由逻辑门组成,是数字电路(dinl)的基础。C = A & B;C = A | B;B = A;三态门:数据(shj)的双向传输与总线的挂接B = (ENA)?A : 1bZ;第4页/共66页第四页,共67页。组合(zh)电路:基本逻辑门 问题(wnt):门电路各种参数的含义与测量方法? UOHMIN UOLMAX UILMAX UIHMINIOHMAX IOLMAXIIHMAXIILMAXTPHLtPLHtPD应用:逻辑门的扇出系数(xsh)IBIS模型中输入输出模型的各种特性曲线第5页/共66页第五页,共67页

3、。组合电路(dinl):其他逻辑门C = (A & B);C = (A | B);C = (A&(B) | (A) & B);C = AB;C =( (A&(B) | (A) & B) );C=(AB);第6页/共66页第六页,共67页。常用组合(zh)电路:译码器 译码器3-8译码器第7页/共66页第七页,共67页。输入输入输出输出G1G2AN+G2BNCBAY0NY1NY2NY3NY4NY5NY6NY7N0XXXX11111111X1XXX11111111100000111111110001101111111001011011111100111110

4、1111101001111011110101111110111011011111101101111111111074138真值表常用(chn yn)组合电路:译码器第8页/共66页第八页,共67页。74138逻辑图第9页/共66页第九页,共67页。常用组合(zh)电路:数据选择器 数据(shj)选择器双4选1数据(shj)选择器数据选择器的RTL符号第10页/共66页第十页,共67页。常用(chn yn)组合电路:数据选择器输入输入输出输出GNBAY1XX0000C0001C1010C2011C374153真值表第11页/共66页第十一页,共67页。74153的1/2逻辑图第12页/共66页第

5、十二页,共67页。常用(chn yn)组合电路:加法器 加法器双全加器加法器的RTL符号(fho)第13页/共66页第十三页,共67页。常用(chn yn)组合电路:加法器输入输入输出输出CIABSUMCO0000000110010100110110010101011100111111第14页/共66页第十四页,共67页。常用(chn yn)组合电路:加法器74183的1/2逻辑图第15页/共66页第十五页,共67页。常用组合电路(dinl):数值比较器 数值(shz)比较器7485数值(shz)比较器比较器的RTL符号第16页/共66页第十六页,共67页。常用组合电路:数值(shz)比较器数

6、值(shz)比较器逻辑图第17页/共66页第十七页,共67页。竞争(jngzhng)与冒险 竞争 在组合电路中,同一信号经由不同(b tn)的途径到达某一汇合点的时间有先有后,这种现象称为竞争。 把门电路两个输入信号同时向相反的逻辑电平跳变的现象叫竞争。 冒险 由竞争引起的电路输出发生瞬间错误的现象称为竞争冒险。(如输出端产生的毛刺)第18页/共66页第十八页,共67页。 “1”冒险(mo xin):L=A&A*竞争(jngzhng)与冒险 “0”冒险(mo xin):L=A+A*第19页/共66页第十九页,共67页。组合电路(dinl):小结 三态门用于数据的双向传输与总线挂接; V

7、erilog中的case和if-else多数(dush)情况下被综合成数据选择器(多路复用器); Verilog中的+/-运算被综合成加法器; Verilog中的比较运算被综合成数字比较器; 避免竞争与冒险。第20页/共66页第二十页,共67页。时序(sh x)数字电路 时序数字电路是由组合电路和存储电路两部分组成。(蔡惟铮. 集成电子技术. 北京(bi jn):高等教育出版社,2007 ) 存储电路一般由触发器组成。第21页/共66页第二十一页,共67页。触发器 触发器:一种(y zhn)具有存储、记忆一位二进制码的器件。D锁存器D触发器?第22页/共66页第二十二页,共67页。同步(tng

8、b)/异步时序数字电路 时序(sh x)数字电路分为同步时序(sh x)数字电路和异步时序(sh x)数字电路。时序电路同步时序电路异步时序电路第23页/共66页第二十三页,共67页。同步(tngb)/异步时序数字电路 同步(tngb)时序电路:存储电路中触发器的状态由同一个时钟控制。 异步时序电路:触发器不是由同一个时钟控制,触发器的翻转有先有后。第24页/共66页第二十四页,共67页。流水线 流水线设计:把规模较大、层次较多的组合逻辑(lu j)分成几个级,在每一级插入寄存器组暂存中间数据。 K级流水线就是从组合逻辑(lu j)的输入到输出恰好有K级,每级一个寄存器组,上一级的输出是下一集

9、的输入,且又无反馈。第25页/共66页第二十五页,共67页。Verilog HDL HDL(Hardware Description Language):硬件(yn jin)描述语言,用于描述数字电路。第26页/共66页第二十六页,共67页。Verilog代码(di m)风格 良好的代码风格(fngg)有助于综合工具对逻辑进行优化。第27页/共66页第二十七页,共67页。三态门 三态信号仅在驱动顶层(dn cn)的输出/双向引脚时可以用。在Altera FPGA内部的信号传输时不可以用三态门。 module tristate (myinput, myenable, mybidir); inpu

10、t myinput, myenable; inout mybidir; assign mybidir = (myenable ? myinput : 1bZ); endmodule第28页/共66页第二十八页,共67页。三态门my_bidirA第29页/共66页第二十九页,共67页。三态门Cyclone系类FPGA的I/O结构(jigu) OE Output Input第30页/共66页第三十页,共67页。内部(nib)总线挂接数据接收逻辑sdram_fifo逻辑cf_fifo逻辑数据接收逻辑sdram_fifo逻辑cf_fifo逻辑数据接收逻辑sdram_fifo逻辑cf_fifo逻辑usb

11、逻辑S通道E通道A通道USB接口遥测422接收逻辑cf_fifo逻辑FPGA第31页/共66页第三十一页,共67页。流水线组合逻辑组合逻辑:c0Tc1+Tc2+Tc3=Tc0MaxTc1, Tc2, Tc3Tc0c1DQc2DQc3DQ第32页/共66页第三十二页,共67页。流水线module binary_adder_tree2 (a, b, c, d, e, clk, out);parameter width = 16;input width-1:0 a, b, c, d, e;input clk;output width-1:0 out;assign out = a + b + c +

12、d + e;endmodulemodule binary_adder_tree2 (a, b, c, d, e, clk, out);parameter width = 16;input width-1:0 a, b, c, d, e;input clk;output width-1:0 out;wire width-1:0 temp1, temp2, temp4;assign temp1 = a+b;assign temp2 = c+d;assign temp3 = temp1+temp2;assign out = temp3+e;/assign out = (a+b) + (c+d) +

13、e;endmodule第33页/共66页第三十三页,共67页。流水线module binary_adder_tree (a, b, c, d, e, clk, out);parameter width = 16;input width-1:0 a, b, c, d, e;input clk;output width-1:0 out;wire width-1:0 sum1, sum2, sum3, sum4;reg width-1:0 sumreg1, sumreg2, sumreg3, sumreg4;/ Registersalways (posedge CLK)beginsumreg1 =

14、sum1;sumreg2 = sum2;sumreg3 = sum3;sumreg4 = sum4;end/ 2-bit additionsassign sum1 = a + b;assign sum2 = c + d;assign sum3 = sumreg1 + sumreg2;assign sum4 = sumreg3 + e;assign out = sumreg4;endmodulemodule binary_adder_tree2 (a, b, c, d, e, clk, out);parameter width = 16;input width-1:0 a, b, c, d, e

15、;input clk;output width-1:0 out;assign out = (a + b) + (c + d) + e;endmodule第34页/共66页第三十四页,共67页。状态机第35页/共66页第三十五页,共67页。状态机:注意事项 如果状态转换逻辑中包含算法,则Quartus II不会将其综合成状态机; 如果状态变量作为输出信号,则Quartus II不会将其综合成状态机; Quartus II不会把有符号的变量综合成状态机; 推荐用parameter来表示(biosh)各个状态,尽量不要直接用数字。case (state)0: beginif (ena) next_s

16、tate = state + 2;else next_state = state + 1;end1: begin.endcase第36页/共66页第三十六页,共67页。状态机:注意事项 状态(zhungti)机进入非法状态(zhungti)后,就会停止正常工作,直到对状态(zhungti)机进行复位。“default”语句不会使状态(zhungti)机从非法状态(zhungti)中跳出。 导致状态(zhungti)机进入非法状态(zhungti)的主要原因是控制信号来自于不同的时钟域。 The most common cause of this situation is a state mac

17、hine that has control inputs that come from another clock domain.case(state)3b000: state=3b001;3b001: state=3b010;3b010: state=3b100;3b100: state=3b000;default: state=3b000;endcase第37页/共66页第三十七页,共67页。状态机 预防措施 在Quartus II中启用“Safe State Machine” 对异步控制信号进行( jnxng)同步处理。参考(cnko):Qusrtus II Handbook Versi

18、on 9.0 Section II:Design Guideline Section III:Synthesis第38页/共66页第三十八页,共67页。状态机:default default仅对合法状态有效,对非法(fif)状态无效。 Synthesis tools remove any logic generated by a default state if it is not reachable by normal state machine operation. 状态机编写规范第39页/共66页第三十九页,共67页。case与if-else case和if-else一般会被综合成数据(

19、shj)选择器。 If-else通常被综合成带优先级的数据(shj)选择器。不需要指定(zhdng)选择顺序时,用case代替if-else,信号传输延时小。if(cond1) z=a;else if(cond2) z=b;else if(cond3) z=c;else z=d;第40页/共66页第四十页,共67页。例1 :DSP写FPGADSP(2407)写外部(wib)存储器时序图第41页/共66页第四十一页,共67页。例1 :DSP写FPGA第42页/共66页第四十二页,共67页。例1 :DSP写FPGA用2级寄存器做同步处理L第43页/共66页第四十三页,共67页。例1 :DSP写FP

20、GA第44页/共66页第四十四页,共67页。例2:时钟(shzhng)测脉宽 背景(bijng):双通道AD并行采集ADCCLKOUTIns_AIns_BdataAdataBFPGASWITCHsynsyn第45页/共66页第四十五页,共67页。例2:时钟(shzhng)测脉宽延时导致(dozh)测量误差ADCCLKOUTIns_AIns_BSWITCH同步异步信号异步信号(xnho)的扇的扇出系数为出系数为1!第46页/共66页第四十六页,共67页。例3:default的含义(hny)FIFO2CTRL.v逻辑中的6个状态状态机不在任何一个状态第47页/共66页第四十七页,共67页。例3:d

21、efault的含义(hny)Default状态为:WAIT_READ_CMD第48页/共66页第四十八页,共67页。例3:default的含义(hny) 最初怀疑(huiy)QuartusII布局布线出了问题 出现概率很小! 对异步控制信号进行同步处理。修改Fitter选项第49页/共66页第四十九页,共67页。例4:同步(tngb)的缺点延时o_datad1d0d2i_clk66Mo_sclk高速卡数据发送时序图两次同步判断上升沿第50页/共66页第五十页,共67页。例4:同步(tngb)的缺点延时同步(tngb)导致延时第51页/共66页第五十一页,共67页。例5:竞争(jngzhng)与

22、冒险 背景介绍( jisho) 高速数据采集器组成 每块高速电路板上有2块CF卡背板1主控卡1低速卡1高速卡3第52页/共66页第五十二页,共67页。例5:竞争(jngzhng)与冒险 用CS2:0做3块高速卡的片选信号 用IQ信号区分电路板上的2块CF卡 问题: 当读取高速卡上的Q路CF卡时,发现(fxin)I路的CF卡也在上传数据。 概率极低:调试数月出现过2次。第53页/共66页第五十三页,共67页。例5:竞争(jngzhng)与冒险CS=0且IQ=0时,读I卡;CS_I=(!CS)&(!IQ)(!IQ)&(!CS)1CSIQ!CS!IQ产生“1”冒险第54页/共66页第

23、五十四页,共67页。小结(xioji) FPGA内部不可以用三态门; 注意状态机的编写规范; 异步信号的扇出系数只能为1; 同步会导致延时; 避免(bmin)竞争与冒险。第55页/共66页第五十五页,共67页。时序分析(fnx)基础 tsu th tco tpdtsuthDQclocktcotpd:clock-to-output:hold:setup:propagation delay第56页/共66页第五十六页,共67页。时序(sh x)分析基础 Tclk fmax=1/Tclk_min tskewTclk (tclk1 - tclk2) + tco+ tcd+ tnd + tsutskew

24、= tclk1 - tclk2DQDQtsutcotclk1tclk2tcdtnd第57页/共66页第五十七页,共67页。输入(shr)延时(Input Delay)tinput_delaytcdtndtsu0th0tpd_CLKtsuthtxLaunch clockLatch clockth0 tinput_delay + tcd + tnd tpd_clk tsu0 Tclk - ( tinput_delay + tcd + tnd tpd_clk)= tCLKs + tco + tBD -tCLKdtinput_delay第58页/共66页第五十八页,共67页。输入(shr)延时(Inp

25、ut Delay)Tmin_iTmax_itsuthth = tmin_i th0tsu =Tclk-tmax_i tsu0时序分析工具(TimeQuest)用最小输入(shr)延时计算保持时间,用最大输入(shr)延时计算建立时间。Tclk -tsu0 tinput_delay th0第59页/共66页第五十九页,共67页。输入(shr)延时:练习 ADC FPGAclkoutdatatsu2.5nsth2.0nsfclk=125MHztmin _itmax_i= 2.0ns= 8.0ns-2.5ns = 5.5ns第60页/共66页第六十页,共67页。输出(shch)延时(Output Delay)tCLKs + tco + tBD tCLKd thTclk-( tCLKs + tco + tBD- tCLKd) tsutco thTclk-tco tsuTclk- tsu tco th用最小输出延时计算保持时间(shjin),用最大

温馨提示

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

评论

0/150

提交评论