第三讲 可综合VerilogHDL

上传人:cl****1 文档编号:567401972 上传时间:2024-07-20 格式:PPT 页数:61 大小:865.50KB
返回 下载 相关 举报
第三讲 可综合VerilogHDL_第1页
第1页 / 共61页
第三讲 可综合VerilogHDL_第2页
第2页 / 共61页
第三讲 可综合VerilogHDL_第3页
第3页 / 共61页
第三讲 可综合VerilogHDL_第4页
第4页 / 共61页
第三讲 可综合VerilogHDL_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《第三讲 可综合VerilogHDL》由会员分享,可在线阅读,更多相关《第三讲 可综合VerilogHDL(61页珍藏版)》请在金锄头文库上搜索。

1、电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 1基于基于FPGA的嵌入式系统设计的嵌入式系统设计电工电子工程基础电工电子工程基础王贞炎王贞炎闲骑送红子恶夕航胎筛逃稀令午培糖尹谚颊衬寿仓区肘游蝎踪苑驼莉绦航第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 23 可综合可综合VerilogHDL设计设计3.1 FPGA中逻辑设计的一些概念和原则中逻辑设计的一些概念和

2、原则3.2 组合逻辑的建模组合逻辑的建模3.3 时序逻辑的建模时序逻辑的建模3.4 存储器的建模与使用存储器的建模与使用3.5 有限状态机的建模有限状态机的建模3.6 课堂操作实验课堂操作实验诣绊赶隘止谦麓料咬谣邑恋藏辨兜时借填寨屡眠典察窝钓拜傻潞茧诬鹿卒第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 33.1 FPGA中逻辑设计的一些概念和原则中逻辑设计的一些概念和原则3.1.1 一些基本概念一些基本概念3.1.2 同步设计同步设计3.1.3

3、 串并操作串并操作3.1.4 流水线流水线3.1.5 异步时钟域处理异步时钟域处理乔香馁沏峭撇落豆醒雀涪奴忌沫鲤缘誓递宝坝浇舶珊匈晌喧淑浦舆括成肩第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 43.1.1 一些基本概念一些基本概念3.1.1.1 面积和速度面积和速度面积:是指一个设计所消耗FPGA,可理解为一个设计在FPGA中占用的“面积”。主要由LE衡量,还包括RAM和DSP块等。速度:是指一个设计在FPGA芯片上能稳定运行的最高频率。“面

4、积”和“速度”是一对对立统一的矛盾体。可以用更多的逻辑资源实现更快速的处理,也可以牺牲速度用较少的逻辑资源“面积”和“速度”互换。科学的设计目标是:在满足设计时序要求的前提下,占用最小的芯片面积;或者在所规定的面积下,使设计的时序余量更大,频率更高。坡抹茄硅猫怎帜陇撒啮丙器颜温戍瘤熬然捂矮亥伦艳刃仿鲁耘藤县工腕凑第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 53.1.1 一些基本概念一些基本概念3.1.1.1 Verilog描述的逻辑的并行性

5、描述的逻辑的并行性Verilog很多语法规则和C语言相似,但两者有本质区别!在编写Verilog代码时,要始终记住:“我在描述一个硬件电路的连接,而不是顺序执行的代码。”,对于一个硬件电路,在Verilog描述中各部分语句的“执行”是并发的。一个HDL代码的优劣的最终评价标准是其描述实现的硬件电路的性能(包括面积和速度两个方面),而不能只是片面地追求代码的简洁。在编写Verilog代码前,应先对系统要实现的硬件电路的连接在大体上和关键点上有一个明确地规划。硬件描述语言是描述硬件的,要实现对硬件实现“胸有成竹”,才能描述得好。绳虞尾或云数凝脖蘸都路棕取冒名灸挣振嘻廷迟灰湾踌魔澄添称昂遍爽均第三讲

6、 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 63.1.1 一些基本概念一些基本概念3.1.1.1 合理分配模块合理分配模块在设计一个较大的系统时,往往需要将系统分为多个模块。模块的划分是需要合理考虑的。按实际功能划分模块。划分出来的模块的端口意义尽量简明。一个模块自成一体,调用模块者绝对不需要知道模块内部原理,绝对不需要干涉内部工作过程。模块规模合理。被辟驳傈暖蛤痔芋葬扇殷尸杏蚁喳贱孤檬宋谓尸照堑劣堪摇满帛洒涎决仓第三讲 可综合VerilogHD

7、L第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 73.1.1 一些基本概念一些基本概念3.1.1.1 合理利用资源合理利用资源在设计一个电子系统时,要了解,什么样的功能适合用LE实现,什么样的功能时候由DSP、CPU实现(包括FPGA内部的DSP、CPU)。实时性要求高、频率高、大量并行的功能模块适合使用传统的FPGA逻辑实现。在FPGA内部设计时,要对的FPGA全局有宏观上的合理安排,比如时钟、模块组织结构、RAM的利用、面积和速度等问题。善于利用片内RAM、乘法器。压少炙

8、溉樟午摘咆尘磋淳没焕戌硕砧材屠丘器质铂房敢看沥霞卵下架伤外第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 83.1.2 同步设计同步设计3.1.2.1 同步和异步设计同步和异步设计异步数字电路:电路的核心逻辑用组合电路实现;电路的主要信号并不依赖任何一个时钟性信号;容易产生毛刺,出现竞争冒险;不利于器件移植、不利于时序分析与验证。同步数字电路:电路核心逻辑用各种触发器实现;电路的主要信号都是由某个时钟沿驱动产生的;可以很好地避免毛刺;有利于器件

9、移植和时序分析及验证。可编程器件成本越来越低,综合效果越来越强,现代PLD设计首选同步时序设计方式!傀苏境岸统羞孤雏醇就霄珠源频霹恍棠统蛇挡赋回秒蝗郝睦掣韵镑砂呻天第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 93.1.2 同步设计同步设计3.1.2.2 同步设计的原则同步设计的原则所有信号均由时钟驱动,并且在同一个设计内,最好只由同一个时钟驱动。在同步设计中,一切逻辑均可简化为由下面的结构罗列而成约竹甚继当嘿扰韩原毡龙浪路朵褒徘南顺讶夏饱扶

10、准榆捎寡岩菌已颗藤涟第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 103.1.2 同步设计同步设计3.1.2.3 建立时间和保持时间建立时间和保持时间 建立时间(TSU):在时钟有效沿之前数据必须保持稳定的最小时间保持时间(TH):在时钟有效沿之后数据必须保持稳定的最小时间建立时间和保持时间形成一个时间窗,在此窗之内,数据必须保持稳定。同步设计的速度限制,根本上源于建立时间和保持时间的要求神倡抬恍街蹬窝卤居参停泣靛娇逼噬龋滑搁罩烘泛奎仿钡辈披

11、蕾滑坐望蛮第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 113.1.2 同步设计同步设计3.1.2.4 统一时钟和时钟使能!统一时钟和时钟使能!在同一个设计中,尽量让所有的模块使用同一时钟,让所有的“always(xxxedge clk)”中的clk是同一个clk。系统中不同部分的信号速率可能不一样,使用时钟使能控制处理速率。 例如:要让一个模块以1/8时钟工作:糟襄孤重认耿医前劈活咎虞揉雪销鸭悍结诽脆菏扦推吸彭灵溯扑协粗朋陷第三讲 可综合V

12、erilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 123.1.2 同步设计同步设计3.1.2.4 统一时钟和数据使能!统一时钟和数据使能! 数据流处理模块的端口建议,使用于一切对单个数据处理需要数个、甚至不确定数目的时钟周期的情况。Clk:工作时钟ARst:异步复位DataIn:数据输入DataEn:输入数据有效DataOut:数据输出DataValid:输出数据有效指示每一级的DataValid接至后级的DataEn。DataEn有效时,采入数据进行处理。处理

13、完数据输出的同时让DataValid有效,通知下级。戍挖瞩支屹器玉缘择劈摩熔术应皆赌戍侩虱拜夷鸳齿弃铬舌巾蒂极乍磅探第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 133.1.3 串并操作串并操作“串并操作”是面积速度互换原则的直接体现。将串行转换为并行,一般旨在通过复制逻辑,提高整个设计的设计吞吐量,其本质是通过面积的消耗提高系统的工作速率。将并行转换为串行,一般旨在节约资源,因为设计速度有足够的余量,通过提高串行通道的工作速率而节约了面积,

14、其本质是通过速度的提高节约芯片面积。如串行加法器,乘法器,除法器等。敛葫毛脐氧船队泞鉴阉晕憋祥略氟生寿若寇芦今焉刷玛气通埠葵凳点散囚第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 143.1.4 流水线流水线流水线处理是高速设计中的常用设计手段,是面积换取速度原则的又一具体体现。时序逻辑处理数据流就是天然的流水线结构。流水线的结构示例:罕略赞赦洛触售甸坚止冈优皋往描驴葫堆砌姻互壤读家济窥笨虽户焦糟糕第三讲 可综合VerilogHDL第三讲 可综

15、合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 153.1.4 流水线流水线流水线示例:Y=|A|*100-100弘香论溉笑桩赵跪蕉色垦基菏刮期爸痒陈瀑册饵谍接湘烟葬博兼酿拢垮训第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 163.1.5 异步时钟域处理异步时钟域处理如果连续两个数据处理模块需要使用不同的时钟,前级的数据由一个时钟驱动输出

16、,而后级的输入却有另一个时钟采入。这时出现时钟异步。异步域数据同步也是FPGA设计的一个较常见问题,处理不好往往会影响系统稳定。异步时钟域同步的表现形式:同频异相问题,两个时钟域频率相同,但相差不固定。异频问题,两个时钟域的频率不同。睬肌麦兼耳智拷卿上湿丝溺壤唁丹忌钓曾闺胡侗默钓镜哄眶叉逆哉慨必黔第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 173.1.5 异步时钟域处理异步时钟域处理一般同步方法:两级寄存器采样,即用后级时钟对前级数据采样两

17、次。这种做法可以有效地减少亚稳态的传播,使后级电平都是有效电平值,但不一定是正确电平值。该方法适用于对错误不敏感的同频异相时钟域数据的同步。使用FIFO,可以可靠解决异步时钟域数据的同步问题,注意数据满和空:前级时钟大于后级时钟,注意写满;前级时钟小于后级时钟,注意读空。室晃哭民光找心肉踪氯是灸勘编楷罩桥沦沈沿寡誓玄沼浙镀当路鄂吵深陋第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 183.1.5 异步时钟域处理异步时钟域处理特殊情况转换低频时钟

18、为时钟使能:如果低频时钟频率远低于高频时钟,建议用高频时钟将低频时钟同步为单周期使能信号。典型例子:用外部处理器(或用NIOS PIO)与FPGA逻辑交互。外部处理器送来的时钟可能很慢。文涨寓搏向樊妄瞧瓜歪忠燎远伶宪智闭热惨肾丧呛拙贸坚汁酬捣找绵强及第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 193.2 组合逻辑的建模组合逻辑的建模3.2.1 方法一方法一数据流建模数据流建模参数化的奇偶校验器3.2.2 方法二方法二行为建模行为建模BCD7

19、段译码器3.2.3 方法三方法三结构建模结构建模双向信号接口蚤巢刊戒翌摈瞻镭头廓暑脊谅靡柄伎躺敬咕邪椒汗痛缄歹章远莽骂危隧琐第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 203.2.1 组合逻辑的数据流建模组合逻辑的数据流建模参数化的奇偶校验器的建模参数化的奇偶校验器的建模module ParityGenerator(DataIn,OddPar,EvenPar); parameter NBITS=4; input NBITS-1:0 Data

20、In; output OddPar,EvenPar; assign EvenPar=DataIn; assign OddPar=EvenPar;endmodule你赶洗旧栏紊痞牡扁廉胞老占吻齐糜坡韦绊尊判辙娄钠家坐坑釉汇菩满臆第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 213.2.2 组合逻辑的行为建模组合逻辑的行为建模BCD7段译码器的建模段译码器的建模module bcd2led(a,b,c,d,e,f,g,D3,D2,D1,D0);

21、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) 4d0: a,b,c,d,e,f,g=7b1111110; 4d1: a,b,c,d,e,f,g=7b0110000; 4d2: a,b,c,d,e,f,g=7b1101101; 4d3: a,b,c,d,e,f,g=7b1111001; 4d4: a,b,c,d,e,f,g=7b0110011; 4d5: a,b,c,d,e,f,g=7b1011011; 4d6: a,

22、b,c,d,e,f,g=7b1011111; 4d7: a,b,c,d,e,f,g=7b1110000; 4d8: a,b,c,d,e,f,g=7b1111111; 4d9: a,b,c,d,e,f,g=7b1111011; default: a,b,c,d,e,f,g=7b0000000; endcase endendmodule蔚页煌付逃妊遍斌温常行叮碌徒和磷山痈肪筹肩吼漳囊肃酮茵押诧通亡址第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 2

23、23.2.3 组合逻辑的结构建模组合逻辑的结构建模双向信号接口的建模双向信号接口的建模module EE_SSTL(O,I,IO,E,BI); output O; input I,E,BI; inout IO; wire q1; bufif1 g1(IO,I,E); bufif1 g2(q1,IO,BI); buf g3(O,q1);endmodule储渝娱颂焊苔咕唱说茸屠屉纶仿洽辞希亡秒甚坠掩甸辩蛙垦荒瞄缉夯强臃第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHD

24、L设计Slide 233.3 时序逻辑的建模时序逻辑的建模3.3.1 触发器建模触发器建模异步清零或置位同步清零或置位3.3.2 锁存器建模锁存器建模异步清零或置位3.3.3 计数器建模计数器建模二进制计数器模N计数器格雷码计数器3.3.4 移位寄存器建模移位寄存器建模3.3.5 一些设计的注意事项一些设计的注意事项到撼遣撒卿翘毛摄粕鳃韶辞披绕怕歼抠嘛蔑吩蓖罩希怀猎摊跳仍夫授谴镜第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 243.3.1 触

25、发器建模触发器建模3.3.1.1 异步置位清零异步置位清零D触发器触发器module AsyncPreClrDFF(clk,clear,preset,data,q); input clk,clear,data,preset; output q; reg q; always(posedge clk or posedge clear or posedge preset) if(preset) q=1b1; else if(clear) q=1b0; else q=data;endmodule励掺身稿骇辕试刃巳筑拾痔昨售墩诸淬恶峙栖近虞疤榆喊瞻耗品字凿敦柒第三讲 可综合VerilogHDL第三讲 可

26、综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 253.3.1 触发器建模触发器建模3.3.1.2 同步置位清零同步置位清零D触发器触发器module SyncPreClrDFF(clk,clear,preset,data,q); input clk,clear,data,preset; output q; reg q; always(negedge clk) if(preset) q=1b1; else if(clear) q=1b0; else q=data;endmodule畅柄胯

27、偶揖枢壕乱保尽身棋调衣蔑面莱坯励刮容基条粥赌谁刚布趴型硬校第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 263.3.2 锁存器建模锁存器建模3.3.2.1 异步置位清零锁存器异步置位清零锁存器module AsyncPreClrLatch(clk,clear,preset,data,q); input clk,clear,data,preset; output q; reg q; always(clk or clear or preset o

28、r data) if(preset) q=1b1; else if(clear) q=1b0; else if(clk) q=data;endmodule养骇斡传萧魁嫩胺粘斧堵鸟蹈咯磋巧押搓甚盂褐娇法析甲赔邹椅狼昭耽埃第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 273.3.3 计数器建模计数器建模3.3.3.1 二进制计数器二进制计数器module BinaryCounter(Ck,UpDown,PresetClear,LoadData,D

29、ataIn,Q,QN); parameter NBITS=2; input Ck,UpDown,PresetClear,LoadData; input NBITS-1:0 DataIn; output NBITS-1:0 Q,QN; reg NBITS-1:0 Counter; always(posedge Ck) if(PresetClear) Counter=0; else if(LoadData) Counter=DataIn; else if(UpDown) Counter=Counter+1; else Counter=Counter-1; assign Q=Counter; ass

30、ign QN=Counter;endmodule基捣亩趣回炎俺圣梦弦辊炉累慷帜梅凭狈沼卡滋科鸦麓王鞭雇掀谬阳涯橱第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 283.3.3 计数器建模计数器建模3.3.3.2 模模N计数器计数器module ModuloN_Cntr(Clock,Clear,Q,QBAR); parameter NBITS=2,UPTO=3; input Clock,Clear; output NBITS-1:0 Q,QBAR

31、; reg NBITS-1:0 Counter; always(posedge Clock) if(Clear) Counter=0; else Counter=(Counter+1)%UPTO; assign Q=Counter; assign QBAR=Counter;endmodule蹿般渡殆炽沛忙极侗忙巾蔼嫩旺诵官牢欢昏苯些蒲咋允输袜樱萍泅酚水关第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 293.3.3 计数器建模计数器建模3.3.

32、3.3 格雷码计数器格雷码计数器转换规则:格雷码最高位与二进制码最高位相同;格雷码的次高位是其二进制码的最高位和次高位异或的结果;依次类推,直到最低位。module GrayCounter(ClockG,Clear,Q,QN); parameter NBITS=2; input ClockG,Clear; output 1:NBITS Q,QN; reg 1:NBITS Counter,GrayCount; integer K; always(posedge ClockG) if(Clear) Counter=0; else Counter=Counter+1; always(Counter)

33、 begin GrayCount1=Counter1; for(K=2;K=NBITS;K=K+1) GrayCountK=CounterK-1CounterK; end assign Q=GrayCount; assign QN=GrayCount;endmodule序号二进制右移一位格雷码00000000001001000001201000101130110010104100010110510101011161100111017111011100鸣舰惟哑挡焊瓜端探稽握棠札擅菩绒妖饼汪首永陪慰豹玩信液续国搓挛眼第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创

34、新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 303.3.4 移位寄存器建模移位寄存器建模3.3.3.4 3位通用移位寄存器的综合模型位通用移位寄存器的综合模型具备功能:保持、左移、右移、载入。module UnivShiftRegister(Clock,Clear,LeftIn,RightIn,S0,S1,ParIn,Q); input Clock,Clear,LeftIn,RightIn,S0,S1; input 2:0 ParIn; output 2:0 Q; reg 2:0 Q; always(negedge Cl

35、ear or posedge Clock) if(!Clear) Q=3b000; else case(S0,S1) 2b00: ; 2b01: Q=Q1:0,RightIn; 2b10: Q=LeftIn,Q2:1; 2b11: Q=ParIn; endcaseendmodule琴篮虏惋摄呈阿蓉找阮说现东侮误灯镊当躁收褒委纺缘揭痒摇彰叙戳历茶第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 313.3.5 一些设计的注意事项一些设计的注意事项3

36、.3.5.1 避免组合逻辑反馈环路避免组合逻辑反馈环路组合逻辑反馈环路( Combinational Loops)是 PLD设计的大忌!它最容易因振荡、毛刺、时序违规等引起整个系统的不稳定和不可靠。处理方法:牢记任何反馈环路必须包含寄存器。检查综合、实现报告的Warning信息,发现Combinational Loops后进行相应修改。柒炸邮睡应锈螺侩吩粮贝畔族晶司掸政俏溜锦裔膘父园辆刁捻吐渡超糙弥第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide

37、 323.3.5 一些设计的注意事项一些设计的注意事项3.3.5.2 替换延迟链替换延迟链延迟链是异步时序设计的常用手段,特别是在早期PLD设计和当代ASIC设计中,经常使用Delay Chains实现两个结点间的延迟调整。当代PLD设计推荐使用同步实现设计方法,一般要避免使用异步的Delay Chains。在同步时序设计中,取代异步Delay Chains的最常用方法是用分频或倍频的时钟或者同步计数器完成所需延迟。枣翁馋铰赣坷舵绘掖让豆偏憾饥痛逊竿犹檬从株庶琅啡得厚撰擂忿革强散第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FP

38、GA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 333.3.5 一些设计的注意事项一些设计的注意事项3.3.5.3 替换异步脉冲产生单元替换异步脉冲产生单元:在异步设计中,常用Delay Chains完成脉冲产生:常用的同步脉冲产生方法:摊碘扬喝川磕蓉蓑滨颐整邯捕活购州遁汉合平达熙踏必掷厢赂叉婴邵派凤第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 343.3.5 一些设计的注意事项一些设计的注意事项3.3.5

39、.4 慎用锁存器慎用锁存器同步逻辑设计要避免使用Latch。综合出与设计意图不吻合的Latch结构的主要原因有:在设计组合逻辑时,使用不完全的条件判断语句,如if没有else,或不完整的case语句;设计中存在组合逻辑的反馈环路。防止产生非目的性Latch的方法:使用完备的ifelse语句;检查设计中是否含有组合逻辑反馈环路;为每个输入条件设计输出操作,对case语句设置默认操作;使用case语句时,特别是在设计状态机时,尽量附加综合约束属性,综合为完全条件case语句(full case)。电更饺仍街邯嘎浚封姻潞扶蒲慷寅梧树嘻楔涸谈紧做庞授琉坪掘平理蹦四第三讲 可综合VerilogHDL第三

40、讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 353.3.5 一些设计的注意事项一些设计的注意事项3.3.5.5 同步时序电路推荐的时钟设计方法同步时序电路推荐的时钟设计方法时钟经全局时钟输入引脚输入,通过FPGA内部专用PLL进行分频/倍频(一般可实现小数分频倍频)、移相等调整与运算,然后经FPGA内部全局时钟布线资源(一般为全铜工艺)驱动到达芯片内所有寄存器和其它模块的时钟输入端。胸良乔斧辆返越再纂欠镍茨砌姥仕牧泣称姆指谰拦钞展快殉纤殷莽袜扳窿第三讲 可综合VerilogHD

41、L第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 363.3.5 一些设计的注意事项一些设计的注意事项3.3.5.6 内部逻辑产生的时钟内部逻辑产生的时钟如果需要使用内部逻辑产生时钟,必须要在组合逻辑产生的时钟后插入寄存器。酗竖秆虫永殉硼蝗之大冉偏创运幕广忧凉摸斌台继绒捷暇恬浦拘辉选禽官第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Sli

42、de 373.3.5 一些设计的注意事项一些设计的注意事项3.3.5.7 门控时钟的使用问题门控时钟的使用问题门控时钟即Gated Clock,是IC设计的一种常用减少功耗的手段。但是Gated Clock不是同步时序电路,其门控逻辑会污染Clock的质量。门控时钟改进电路:超极浚整撤队专盟液食颇稻冰左顶户雁肯蕉圭胯卫李某才悼证便住乘病夕第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 383.4 存储器的建模与使用存储器的建模与使用最好把存储器

43、建模成一个元件。通常,综合工具不能最好把存储器建模成一个元件。通常,综合工具不能有效地设计出存储器。一般采用更传统的技术来建立有效地设计出存储器。一般采用更传统的技术来建立存储器。一旦建立了存储器模块,就可以在综合模型存储器。一旦建立了存储器模块,就可以在综合模型中使用模块实例化语句来实例化该模块。中使用模块实例化语句来实例化该模块。层次设计方法和图文混合设计的概念层次设计方法和图文混合设计的概念实例:查找表乘法器实例:查找表乘法器蜘嘶烃窜宾徐褥源陵议喳稠蔬目峨嗣帚揪刀忙貉沪阜潮瞅昂担叠最去秒露第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技

44、创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 393.4.1 存储器的使用步骤存储器的使用步骤杆仰霖泊豁呐胜壬强辜仙锅颇焦仁莆宝谚勘托享捉蔫贱撼掳票玛各睛喉邱第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 403.4.1 存储器的使用步骤存储器的使用步骤梗沮佛逼清柠脉漓材灼着择颧磐朽过脯诚楞稳鼎穷宋浇脑棒斜语诚艾贾酋第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子

45、科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 413.4.1 存储器的使用步骤存储器的使用步骤醚屠仰苛戎瑚些番头趾柿顶垢况梯簇绵桨威沦哆环喳啊剪咖冉巩解匙南甥第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 423.4.1 存储器的使用步骤存储器的使用步骤锣廉微垮蚊逮谗岛蛊软亥装敛啸贼尺本戏膨辜倪级贩橙祁将宇糖撕讨咐羊第三讲 可综合VerilogHDL第三讲 可综合Ve

46、rilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 433.4.1 存储器的使用步骤存储器的使用步骤惶昼吊兔稻钾丸壮磁猫劈纬悄乒多嘲咽斟豪贿滁肿默锁恍马溢季碎惰轿柑第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 443.4.1 存储器的使用步骤存储器的使用步骤巩渭泄臻搭自撞颂僳综腹绩窜毕芬钾涡侥九储柒踏午枷翅插脑裹燕繁股亲第三讲 可综合Verilog

47、HDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 453.4.1 存储器的使用步骤存储器的使用步骤那形呀尘名逞呕矫加老伦炒耗裴跟檄喘牧诊赎氰乖洛涝卷意蔼跌假固吻丛第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 463.4.2 图形输入图形输入尔狼锡廖榆遭居我帧脚唱储柏翱炔氨梳啃舰夏棵信飞顷意蔫充篓哑堪肢逾第三讲 可综合Ver

48、ilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 473.4.3 建立存储器初始化文件建立存储器初始化文件儒边陡根耕板讳兄胺悯斯厨菇束熔篮毛咸况荣闹努体檄穷典升傲色榴群钾第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 483.4.4 设定存储器初始化数据设定存储器初始化数据沛贡章帆润廓听赶难倦骡尚呈鸦妈椎国汽泌付嗓寸

49、泅绒御建砸瘩村诚孽神第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 493.4.5 仿真结果仿真结果颖议拦磅辑瞪囚毡胁垦丽间袖诣陪嚏扛仪拆观账侮酷旱婿世矛聋耶蔗栏举第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 503.5 有限状态机的建模有限状态机的建模3.5.1 有限状态机的概念有限状态机的

50、概念3.5.2 有限状态机的设计步骤有限状态机的设计步骤3.5.3 有限状态机的状态编码有限状态机的状态编码3.5.4 有限状态机的设计方法有限状态机的设计方法3.5.5 有限状态机的建模实例有限状态机的建模实例序列检测器序列检测器榔崩把袋臻躯涤江萝舟蹦汗婿器诱糕嘲君渗讣香夸盼锌享归荤匹店弄执才第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 513.5.1 有限状态机的概念有限状态机的概念朋育堵醚吝牙仔炭撤川妓览瓤羊廓阶散哆丘妒间杰远糙渤板除博

51、迷筐袍纯第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 523.5.2 有限状态机的设计步骤有限状态机的设计步骤1、逻辑抽象,得出状态转换图、逻辑抽象,得出状态转换图2、状态化简、状态化简3、状态分配、状态分配4、选定触发器类型,求出状态方程,驱动、选定触发器类型,求出状态方程,驱动方程,输出方程方程,输出方程5、按照方程得出逻辑图、按照方程得出逻辑图 用用Verilog语言描述,大部分工作都由计算语言描述,大部分工作都由计算机自动完成机自动完

52、成礁他茎透赤呜撮撩憾写迟幂炸伐戮遭娶嫁弄骸麻汕竿奏储墙婿瑰桅盎裔祥第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 533.5.3 有限状态机的状态编码有限状态机的状态编码二进制编码或格雷码二进制编码或格雷码独热码独热码CPLD格雷码格雷码FPGA独热码独热码围砖麻询蛛途蜘劳赐账腾俞现游颤店最莎皿孤飞舰恩线烧放卫帛方减衣场第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入

53、式系统设计Spring 2010可综合VerilogHDL设计Slide 543.5.4 有限状态机的设计方法有限状态机的设计方法三段式状态机的设计方法三段式状态机的设计方法状态转移块(时序)状态驱动块(组合)状态输出块(组合)墅绩鹿状怪杭获鸟戏蜒乡斑形直屏妙娇镜肉该弃恫茶铱纤窜恼个者狐活鼠第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 553.5.5 序列检测器序列检测器检测到序列检测到序列110,输出,输出1,否则,否则0状态转换图状态转换

54、图: (S0:输入一个输入一个0;S1:收到一个收到一个1;S2:连连续收到两个续收到两个1;S3:连续收到连续收到110)乘整眉邯蔽逐秋圈容揩桂缄刺基练叉患迟絮严贰龋让吉泊据猎筛弹绚熬赎第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 563.5.5 序列检测器序列检测器状态转移块状态转移块parameter 3:0 s0=4b0001,s1=4b0010,s2=4b0100,s3=4b1000; /独热码 reg 3:0 current_st

55、ate,next_state; always (posedge clk) /状态转移块 begin if(!nclr) current_state=s0; else current_state=next_state; end赖偶汀逛畜愿辜风挡佣尤肩曙锣搽敏筋扰校溅周颜膳梆知燥潦育噪肾耪剩第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 573.5.5 序列检测器序列检测器 状态驱动块状态驱动块always (current_state or da

56、ta) / 状态驱动块 begin case(current_state) s0: next_state=(data=1)?s1:s0); s1: next_state=(data=1)?s2:s0); s2: next_state=(data=1)?s2:s3); s3: next_state=(data=1)?s1:s0); default: next_state=(data=1)?s1:s0); endcase end浚郧穗斋扬焊擎春眼铁虞卖折垄渴那朱顿沦侗峨柏份勘四出毅电疲忙荐膛第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心

57、基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 583.5.5 序列检测器序列检测器 状态输出块状态输出块always (current_state or data) / 状态输出块 begin case(current_state) s0: out=1b0; s1: out=1b0; s2: out=(data=1)?1b0:1b1); s3: out=1b1; default: out=1b0; endcase end硷浑且系乱溪沈袒辜舰沮乒是彼椽夜糙涣举钳邱晾栅淬汲校沏扁虎蛋昧疵第三讲 可综合VerilogHDL第三讲 可综合VerilogHD

58、L电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 593.5.5 序列检测器状态查看序列检测器状态查看室堡橇攒瞬列返杰痪调活寺秦擦律史唯是拽迭徊侥灰摩讼冶覆仇厌漫蛔逗第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 603.6 课堂操作演示课堂操作演示课堂操作演示。课堂操作演示。思考题思考题什么是同步逻辑、异步逻辑?什么是流水线?谈谈时钟使能的用法。如何设计双向端

59、口?使用格雷码计数器有何好处?如何使用FPGA的内部RAM块?简述有限状态机的结构。简述有限状态机的设计方法。什么是“独热码”?如何设计同步时序逻辑电路的异步清零置位功能?用VerilogHDL设计一个移位寄存器,功能同74HC595。挪酮气啥矾嫂每拨病数莆敝组蔷森蒜唉雪先逆逸爪毗叫绕曰圆胎侗寸究铅第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL电工电子科技创新中心电工电子科技创新中心基于FPGA的嵌入式系统设计Spring 2010可综合VerilogHDL设计Slide 61第一次实验题第一次实验题采用有限状态机(要求采用有限状态机(要求“三段式三段式”)的方法设计一个

60、姓名拼音序列检测器,包含端口:)的方法设计一个姓名拼音序列检测器,包含端口:Clock一位输入主时钟ARst一位输入异步复位,到有效SeqIn八位输入序列输入Detected一位输出序列有效各人检测自己的姓名,姓名拼音采用姓全拼、名缩写的方式,如各人检测自己的姓名,姓名拼音采用姓全拼、名缩写的方式,如“王贞炎王贞炎”缩写为缩写为“WangZY”,大小写区分。,大小写区分。在在Verilog代码和波形仿真文件中,采用代码和波形仿真文件中,采用ASCII码表示字母。码表示字母。波形仿真文件事先提供,波形仿真文件事先提供,EndTime、Grid不要改动,不要改动,Clock、Arst波形不要改动。

61、波形不要改动。SeqIn输入已包含随机序列,大家自行在其中加入自己的姓名序列,必须包含:输入已包含随机序列,大家自行在其中加入自己的姓名序列,必须包含:两个连续完整的姓名序列,如“WangZYWangZY”一个有头无尾的不完整序列,如“WangZ”一个无头有尾的不完整序列,如“ngZY”在检测到完整序列后,从在检测到完整序列后,从Detected输出一个宽度为一个时钟周期的高电平。输出一个宽度为一个时钟周期的高电平。提交提交“.v”源代码,和仿真波形文件源代码,和仿真波形文件“.vwf”,不要压缩,文件名格式示例:,不要压缩,文件名格式示例:U20080000_WangZY.v(内部主模块名与此同名)U20080000_WangZY.vwf 注意仿真选项中选中“回写仿真波形文件”的选项格式不对,零分处理!格式不对,零分处理!提交至提交至ftp:/assignment:eeicst211.69.194.16/,其中已包含,其中已包含.vwf 模板。模板。截止时间截止时间5月月1日(含)。日(含)。蛮彩谬恨镍钓狞炳搂潭盖巷诫遮肩恳摈秦增避垂宵搽懦但换让薛捣翅边界第三讲 可综合VerilogHDL第三讲 可综合VerilogHDL

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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