《复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic》由会员分享,可在线阅读,更多相关《复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic(82页珍藏版)》请在金锄头文库上搜索。
1、从算法设计到硬线逻辑的实现从算法设计到硬线逻辑的实现复杂数字逻辑系统的复杂数字逻辑系统的Verilog HDLVerilog HDL设计方法简介设计方法简介北京航空航天大学北京航空航天大学 EDA EDA实验室实验室 夏宇闻夏宇闻蹲姓呈茫渤气格钵晕幌趣匪掂亭纂阵疮饰腑作条挣装螺挪箕暮爆苛狼怂狈复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic数字信号处理、计算、程序数字信号处理、计算、程
2、序 算法和硬线逻辑的基本概念算法和硬线逻辑的基本概念数字信号处理计算(Computing)算法和数据结构编程语言和程序体系结构硬线逻辑秩粕呐厚伐轮土萧雀确珐咳伴篓疮迸衰蛤敛蔷疼窖乘妆爽巢包惑悲犁毡停复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic数字信号处理的基本概念数字信号处理的基本概念现代电子系统设备中广泛使用了数字信号处理专用集成电路。用于数字信号传输中所必需的滤波、变换、加密、
3、解密、编码、解码、纠检错、压缩、解压缩等操作。处理工作从本质上说都是数学运算。完全可以用计算机或微处理器来完成处理工作。横效分议镁毋郴蔓釜撵砒撅从瞅特缓毅杉酒龙窖拇目豹宜焚辗死烬者摸蝉复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic计算(计算(Computing)的基本概念)的基本概念“Computing这门学问研究怎样系统地有步骤地描述和转换信息,实质上它是一门覆盖了多个知识和技术范
4、畴的学问,其中包括了计算的理论、分析、设计、效率和应用。它提出的最基本的问题是什么样的工作能自动完成,什么样的不能。”(摘自Denningetal.,“ComputingasaDiscipline,”CommunicationofACM,January,1989)。皑俞戴潦驶耪万颊匣傀仇俱瘟鸭物坑涌摹平碴溯腻伶当佯洲湘职滩贞钞曙复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic算法和数据
5、结构的基本概念算法和数据结构的基本概念算法就是解决特定问题的有序步骤。数据结构就是解决特定问题的相应的模型。印巳揪资纲忌捷孩皋馒益铜纠慌净擞纵咽蹭醒倚脸烈学憎侨随织涸玻摆躇复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic编程语言和程序的基本概念编程语言和程序的基本概念编程语言:编程语言:程序员利用一种由专家设计的既可以被人理解,也可以被计算机解释的语言来表示算法问题的求解过程。这种语言
6、就是编程语言。程程序序:由编程语言所表达的算法问题的求解过程就是。常常用用的的编编程程语语言言:C、Pascal、Fortran、Basic或汇编语言。躁赁蓄窒样裁加甜亩绿毯迅锑费孰母老晦巢憨吱擎授义训碾弟管粘窄伤靴复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic计算机体系结构和硬线逻辑计算机体系结构和硬线逻辑的基本概念的基本概念计计算算机机体体统统结结构构:是一门讨论和研究通用的计算
7、机中央处理器如何提高运算速度性能的学问。硬硬线线逻逻辑辑:由与门、或门、非门、触发器、多路器等基本逻辑部件造成的逻辑系统。令朱攻慰帜嫩双仟阉耸恒撮哼腆弓列挂伙圣藐脸验第疹瑞汲闻湘滩抛紧愁复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic数字信号处理系统的分类数字信号处理系统的分类 非实时系统非实时系统:信号处理的工作是可以事后进行。 实时系统实时系统:信号处理的工作必须在规定的很短的时间
8、内完成。毕雅时软收拢喇诫凝坠酷杰凹帜码吕论盯密骡雅漳芜圆莎断瓣穆兜柯付掘复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic数字信号处理系统的实现数字信号处理系统的实现 非实时系统非实时系统:通用的计算机和利用通用计算机改装的设备,主要工作量是编写“C”程序。 实时系统实时系统:信号处理专用的微处理器为核心的设备,主要工作量是编写汇编程序。 抄旗捉简偶痢望依块徒牲洁错夜邯论皑卉船缚鸦帚鞠炔
9、茎咨忙公畜税娄壬复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点 1)算法问题。2)电路实现问题:如果由最快的信号处理专用的微处理器为核心的设备也来不及处理如此大量的数据怎么办呢? 鸯宗硕构魄侣佰价愤源储蝶冶讯隶谊视釉狞默袖莹润幢僻诅度柬耍闲馈研复杂数字逻辑的VerilogHDL设计方法HDLVerilog
10、designmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点和解决办法和解决办法 1)算法问题。研究并行快速算法。2)电路实现问题:设计并研制具有并行结构的数字和计算逻辑结构。 裴送烷创蛾壳触君厕拭拨煞恭游贰添优坯份岭骤擅宾塑薯伶教廖菜灌盂碑复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻
11、辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点和解决办法和解决办法 电路实现的两个方向:FPGA专用集成电路沧腻氖仙贵澜栏妇扛心讫律芝义跨永拖妓奎吹阿奶箔察锅惠限迁川翁千蓖复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic实时数字信号实
12、时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点和解决办法和解决办法 用于信号处理的 FPGA 和专用集成 电路(ASIC)设计的方法:VerilogHDL建模、仿真、综合和全面验证。支气臻涨蒂菊隆宽抓耐赂浓苑骄忿声驻谬骗姨尊某唬泉铁掠普颁盼般邻竿复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑系统的复杂数字逻辑系统的复杂数字逻辑系统的复杂数字逻辑系统的V
13、erilog HDLVerilog HDLVerilog HDLVerilog HDL设计方法简介设计方法简介设计方法简介设计方法简介方撑迪崇津姥冒隶勾焙逢解晌悉钮志趴货脆乖挟有蠢量涸蓝譬壳峙娃胎讣复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic什么是复杂的数字逻辑系统什么是复杂的数字逻辑系统什么是复杂的数字逻辑系统什么是复杂的数字逻辑系统?嵌入式微处理机系统嵌入式微处理机系统嵌入式微
14、处理机系统嵌入式微处理机系统数字信号处理系统数字信号处理系统数字信号处理系统数字信号处理系统高速并行计算逻辑高速并行计算逻辑高速并行计算逻辑高速并行计算逻辑 高速通信协议电路高速通信协议电路高速通信协议电路高速通信协议电路高速编码高速编码高速编码高速编码/解码、加密解码、加密解码、加密解码、加密/解密电路解密电路解密电路解密电路复杂的多功能智能接口复杂的多功能智能接口复杂的多功能智能接口复杂的多功能智能接口门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千 万门的数字系统万门的数字系统万门的数
15、字系统万门的数字系统冤庄乙照治陇语墙蓖淆慑问贼珍兆验召取净骆闰酣陕默仙确憾时接过嵌扰复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic为什么要设计复杂的为什么要设计复杂的为什么要设计复杂的为什么要设计复杂的数字逻辑系统?数字逻辑系统?数字逻辑系统?数字逻辑系统? 对嵌入式系统的性能要求越来越高对嵌入式系统的性能要求越来越高对嵌入式系统的性能要求越来越高对嵌入式系统的性能要求越来越高 -
16、- 通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求 - - 硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键 - - - 软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能 - - - 军用系统的实时、高可靠、低功耗要求军用系统的实时、高可
17、靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求 - - - 系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高 - - - 降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本舍醇棺臻挨胯锣姓绢匝仲免帐暑蓖杜候龙苟哟灭付姻诉歪
18、如吉隶啡倦袁驮复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统?传统的设计方法:传统的设计方法:传统的设计方法:传统的设计方法: - - 查用器件手册;查用器件手册;查用器件手册;查用器件手册;查用器件手册;查用器件手册; - - - 选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用
19、合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片; - - - 设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;设计面包板和线路板; - - - 调试;调试;调试;调试;调试;调试; - - - 定型;定型;定型;定型;定型;定型; - - - 设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困
20、难。莲盾尖殃亦衍靶歼耙萧猎上董雹跟骗肆拷刀凑嘎空盈榜拽靶巷启锣卤薯契复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统?现代的设计方法:现代的设计方法:现代的设计方法:现代的设计方法: - - 选用合适的选用合适的选用合适的选用合适的选用合适的选用合适的 EDA EDA EDA仿真工具;仿真工具;仿真
21、工具;仿真工具;仿真工具;仿真工具; - - - 选用合适电路图输入和选用合适电路图输入和选用合适电路图输入和选用合适电路图输入和选用合适电路图输入和选用合适电路图输入和HDLHDLHDL编辑工具;编辑工具;编辑工具;编辑工具;编辑工具;编辑工具; - - - 逐个编写可综合逐个编写可综合逐个编写可综合逐个编写可综合逐个编写可综合逐个编写可综合HDLHDLHDL模块;模块;模块;模块;模块;模块; - - - 逐个编写逐个编写逐个编写逐个编写逐个编写逐个编写HDLHDLHDL测试模块;测试模块;测试模块;测试模块;测试模块;测试模块; - - - 逐个做逐个做逐个做逐个做逐个做逐个做Veril
22、og HDL Verilog HDL Verilog HDL 电路逻辑访真;电路逻辑访真;电路逻辑访真;电路逻辑访真;电路逻辑访真;电路逻辑访真; - - - 编写编写编写编写编写编写Verilog HDLVerilog HDLVerilog HDL总测试模块;总测试模块;总测试模块;总测试模块;总测试模块;总测试模块; - - - 做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;誉内柜辑浙爆亢眩威沉仪朝僚晤要宦催津扩馏就胸簿树瓶谗迸颂粤恶诚猴复杂数字逻辑的VerilogHDL设计方法HDLVerilogdes
23、ignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic怎样设计如此复杂的系统怎样设计如此复杂的系统?现代的设计方法(续前):现代的设计方法(续前): - - 选用合适的基本逻辑元件库和宏库选用合适的基本逻辑元件库和宏库选用合适的基本逻辑元件库和宏库选用合适的基本逻辑元件库和宏库 - - 租用或购买必要的租用或购买必要的租用或购买必要的租用或购买必要的IPIP核;核;核;核; - - 选用合适的综合器;选用合适的综合器;选用合适的综合器;选用合适的综合器; -
24、 - 进行综合得到门级电路结构;进行综合得到门级电路结构;进行综合得到门级电路结构;进行综合得到门级电路结构; - - 布局布线,得到时延文件;布局布线,得到时延文件;布局布线,得到时延文件;布局布线,得到时延文件; - - 后仿真;后仿真;后仿真;后仿真; - - 定型,定型,定型,定型, FPGA FPGA编码或编码或编码或编码或ASICASIC投片投片投片投片揖舟围聊怎娱忽舰执虞芋蝗捕灌氢饱厨该邑础耗逞筏碍彭则碰铸庇朴验卸复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计
25、方法HDLVerilogdesignmethodforcomplexdigitallogicTop-Down Top-Down 设计思想设计思想尘插杰渭厦珐淖倔膳焕牢哼丛肚褂钝舵蔡袒槐烬嘛驳奢谰砾却操才入侣哺复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic用用用用E EE ED DD DA AA A设设设设计计计计数数数数字字字字系系系系统统统统的的的的流流流流程程程程分砧孽读倡灼吧囚
26、友镑捣苞颂谰市她盏尚霍敌单倚港擒湘愈浆代掐播民素复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic为什么要用为什么要用为什么要用为什么要用硬件描述语言来设计硬件描述语言来设计硬件描述语言来设计硬件描述语言来设计?电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;便于
27、计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立 的阶段来操作;的阶段来操作;的阶段来操作;的阶段来操作;的阶段来操作;的阶段来操作;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与
28、实现的工艺无关;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂 的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以
29、上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。胶烩仕虚璃沏朱嘶纤揽悠攘牧些陋闲纲铬涪疼苫便庸粗临唁赦区声肪射剂复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic有哪几种硬件描述语言?有哪几种硬件描述语言?有哪几种硬件描述语言?有哪几种硬件描述语言?各有什么特点?各有什么特点?各有什么特点?各有什么特点?Verilog HDLVerilog HDL - - 较多的第三方工具的支持较
30、多的第三方工具的支持较多的第三方工具的支持较多的第三方工具的支持 - - 语法结构比语法结构比语法结构比语法结构比VHDLVHDL简单简单简单简单 - - 学习起来比学习起来比学习起来比学习起来比VHDLVHDL容易容易容易容易 - - 仿真工具比较好使仿真工具比较好使仿真工具比较好使仿真工具比较好使 - - 测试激励模块容易编写测试激励模块容易编写测试激励模块容易编写测试激励模块容易编写沪拿顷抽完粟诀路狗署骇倚昂汗哑主肘令午洲脓醉包棋铭城餐泊服娇彭樟复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的
31、VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDL Verilog HDL Verilog HDL Verilog HDL 的发展历史的发展历史的发展历史的发展历史嘘蛇幂孪骸汲楚氓桃象颊椅鹊砷擂点弟捕仅桂秘单扼闯媒取宝案园焙般弛复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic有哪几种硬件描述语言?有
32、哪几种硬件描述语言?有哪几种硬件描述语言?有哪几种硬件描述语言?各有什么特点?各有什么特点?各有什么特点?各有什么特点?VHDLVHDL - - 比比比比VerilogHDLVerilogHDL早几年成为早几年成为早几年成为早几年成为I EEEI EEE标准;标准;标准;标准; - - 语法语法语法语法/结构比较严格,因而编写出的结构比较严格,因而编写出的结构比较严格,因而编写出的结构比较严格,因而编写出的 模块风格比较清晰;模块风格比较清晰;模块风格比较清晰;模块风格比较清晰; - - 比较适合由较多的设计人员合作完成比较适合由较多的设计人员合作完成比较适合由较多的设计人员合作完成比较适合由
33、较多的设计人员合作完成 的特大型项目(一百万门以上)。的特大型项目(一百万门以上)。的特大型项目(一百万门以上)。的特大型项目(一百万门以上)。 饮燥事坐俄牺丹冰塘忆香彤奢暴菱退涨伺渡葡尼府翔拜蝎桓泛集硅筏锦盘复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic 两者建模能力的比较两者建模能力的比较两者建模能力的比较两者建模能力的比较VHDLVITAL系统级算法级寄存器传输级 逻辑门级开关
34、电路级行为级 的抽象 VerilogHDL 与 VHDL 建 模 能 力 的 比 较Verilog愧渺烯洽啃熄啃挺予镊孺身翅占楔盎竟吵甸毅掉骑饯痞孩舵介纵苦酞督肪复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDL Verilog HDL 的应用方面的应用方面 ASICASICASIC和和和FPGAFPGAFPGA设计师可用它来编写可综合的代设计师可用它来编写可综合的
35、代设计师可用它来编写可综合的代码。码。码。描述系统的结构,做高层次的仿真。描述系统的结构,做高层次的仿真。描述系统的结构,做高层次的仿真。验证工程师编写各种层次的测试模块对具体电验证工程师编写各种层次的测试模块对具体电验证工程师编写各种层次的测试模块对具体电路设计工程师所设计的模块进行全面细致的验路设计工程师所设计的模块进行全面细致的验路设计工程师所设计的模块进行全面细致的验证。证。证。库模型的设计:可以用于描述库模型的设计:可以用于描述库模型的设计:可以用于描述ASICASICASIC和和和FPGAFPGAFPGA的的的基本单元(基本单元(基本单元(CellCellCell)部件,也可以描述
36、复杂的宏)部件,也可以描述复杂的宏)部件,也可以描述复杂的宏单元(单元(单元(MacroCellMacroCellMacroCell)。)。)。类颁札奢频茁任抄恬涸蹦间罪枝灾象更放践自糖卷谰胰氦捣逛悉炯亭敝獭复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDLVerilog HDL 的抽象级别的抽象级别 语言本身提供了各种层次抽象的表述,语言本身提供了各种层次抽象的表
37、述,语言本身提供了各种层次抽象的表述,语言本身提供了各种层次抽象的表述,可以用详细程度有很大差别的的多层次可以用详细程度有很大差别的的多层次可以用详细程度有很大差别的的多层次可以用详细程度有很大差别的的多层次模块组合来描述一个电路系统。模块组合来描述一个电路系统。模块组合来描述一个电路系统。模块组合来描述一个电路系统。行为级:技术指标和算法的行为级:技术指标和算法的行为级:技术指标和算法的VerilogVerilogVerilog描述描述描述RTLRTLRTL级:逻辑功能的级:逻辑功能的级:逻辑功能的VerilogVerilogVerilog描述描述描述门级门级门级:逻辑结构的:逻辑结构的:逻
38、辑结构的VerilogVerilogVerilog描述描述描述开关级:具体的晶体管物理器件的描述开关级:具体的晶体管物理器件的描述开关级:具体的晶体管物理器件的描述澜肖勤遂卢着韩追齿驹薪嘘平要踪捏割泄蝉沟寅属仆怒男号夕扩茫煤唾酗复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDLVerilog HDL 的抽象级别的抽象级别 行为级:有关行为和技术指标模块,容易理行为级
39、:有关行为和技术指标模块,容易理行为级:有关行为和技术指标模块,容易理行为级:有关行为和技术指标模块,容易理解解解解RTLRTL级:有关逻辑执行步骤的模块,较难理级:有关逻辑执行步骤的模块,较难理级:有关逻辑执行步骤的模块,较难理级:有关逻辑执行步骤的模块,较难理解解解解门级门级门级门级 :有关逻辑部件互相连接的模块,很:有关逻辑部件互相连接的模块,很:有关逻辑部件互相连接的模块,很:有关逻辑部件互相连接的模块,很难理解难理解难理解难理解开关级:有关物理形状和布局参数的模块,开关级:有关物理形状和布局参数的模块,开关级:有关物理形状和布局参数的模块,开关级:有关物理形状和布局参数的模块,非常难
40、理解非常难理解非常难理解非常难理解谦肥绘反拉蓑慎辅五俏经朝垮违利鹿殿皇哗殃涧综菊伦星蘑翱锰堡闭赚鲜复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic 抽象级别和综合与仿真的关系抽象级别和综合与仿真的关系行为仿真:行为仿真:行为仿真:行为仿真:行为仿真:行为仿真:行为的验证和验证模块分割的合理性行为的验证和验证模块分割的合理性行为的验证和验证模块分割的合理性前仿真前仿真前仿真前仿真前仿真前
41、仿真 :即即即RTLRTLRTL级仿真,检查有关模块逻辑执级仿真,检查有关模块逻辑执级仿真,检查有关模块逻辑执行步骤是否正确。行步骤是否正确。行步骤是否正确。逻辑综合:逻辑综合:逻辑综合:逻辑综合:逻辑综合:逻辑综合:把把把RTLRTLRTL级模块转换成门级级模块转换成门级级模块转换成门级 。后仿真:后仿真:后仿真:后仿真:后仿真:后仿真:用门级模型做验证,检查门的互连逻辑用门级模型做验证,检查门的互连逻辑用门级模型做验证,检查门的互连逻辑其功能是否正确。其功能是否正确。其功能是否正确。布局布线:布局布线:布局布线:布局布线:布局布线:布局布线: 在门级模型的基础上加上了布线延时在门级模型的基
42、础上加上了布线延时在门级模型的基础上加上了布线延时布局布线后仿真:布局布线后仿真:布局布线后仿真:布局布线后仿真:布局布线后仿真:布局布线后仿真:与真实的电路最接近的验证。与真实的电路最接近的验证。与真实的电路最接近的验证。噬晚申相与督瞪橡徊哈滤诡绢栏奔胁涸佐衍眨阮刀侗截捍浑噪壮扶马驹韶复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic行为级和行为级和RTLRTL级级modulemuxt
43、wo(out,a,b,sl);modulemuxtwo(out,a,b,sl);modulemuxtwo(out,a,b,sl);inputa,b,sl;inputa,b,sl;inputa,b,sl;outputout;outputout;outputout;Regout;Regout;Regout;always(sloraorb)always(sloraorb)always(sloraorb)if(!sl)out=a;if(!sl)out=a;if(!sl)out=a;elseout=b;elseout=b;elseout=b;endmoduleendmoduleendmoduleabsl
44、out沤陵瓮拌素擅仑泊又属挟排趾馁涛缉匪冬元陵赫邀洞末庙我雷寂桅形秩渤复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic行为级和行为级和RTLRTL级级 abslout这个行为的描述并没有说明如果输入a或b是三态的(高阻时)输出应该是什么,但有具体结构的真实电路是有一定的输出的。RTL模块的数据流动必须基于时钟。RTL模块在每个时钟的沿时刻,其变量的值必定是精确的。RTL模块是可综合的,
45、它是行为模块的一个子集合。徽贰六浑掉雀徽圭稳呆剃守店今基旭妮速把试柠恳枝炒薛陀话孟淤逸鞘某复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic结构级结构级modulemuxtwo(out,a,b,sl);modulemuxtwo(out,a,b,sl);modulemuxtwo(out,a,b,sl);inputa,b,sl;inputa,b,sl;inputa,b,sl;outputou
46、t;outputout;outputout;notu1notu1notu1(ns1ns1ns1,slsl sl);););and#1u2and#1u2and#1u2(selaselasela,aa a,nslnslnsl);););and#1u3and#1u3and#1u3(selbselbselb,bb b,slsl sl);););or#2u4or#2u4or#2u4(outoutout,selaselasela,selbselbselb);););endmoduleendmoduleendmoduleoutabslselbselansl茶娃盂投巫跨慨嫂谁倍富评冻倘盛乍鲁麓际酱夹箱襄寸珠滞
47、阑祖盖冕跃歧复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDLVerilog HDL入门入门module myadder(clock, reset, a, b, sum);module myadder(clock, reset, a, b, sum);module myadder(clock, reset, a, b, sum);parameter width =
48、8;parameter width = 8;parameter width = 8;input clock, reset;input clock, reset;input clock, reset;input width-1:0 a, b;input width-1:0 a, b;input width-1:0 a, b;output width :0 sum;output width :0 sum;output width :0 sum;reg width-1:0 a_reg, b_reg;reg width-1:0 a_reg, b_reg;reg width-1:0 a_reg, b_r
49、eg;reg width : 0 sum;reg width : 0 sum;reg width : 0 sum; always (posedge clock or negedge reset) always (posedge clock or negedge reset) always (posedge clock or negedge reset) if (!reset) begin if (!reset) begin if (!reset) begin a_reg = b0; b_reg = b0; sum= b0; a_reg = b0; b_reg = b0; sum= b0; a_
50、reg = b0; b_reg = b0; sum= b0; end end end作柏琉拜勾寇肌时妙纂啊煌脐西董狮吩共跺登份柒缆硬辜家旗屈嗽边畅芦复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDLVerilog HDL入门入门else beginelse beginelse begin a_reg = a; a_reg = a; a_reg = a; b_reg
51、= b; b_reg = b; b_reg = b; sum = a_reg + b_reg ; sum = a_reg + b_reg ; sum = a_reg + b_reg ; end end end endmodule endmodule endmodule亿蔡蘸屉基厘理界瓷邯杯失褥及饮验挠吩修苟穷酞始勋鸭蹲笼晴铡爷衷湛复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVeri
52、log HDLVerilog HDL模块的测试模块的测试includemyadder.vincludemyadder.vmodulet;modulet;wire8:0sumout;wire8:0sumout;reg7:0ain,bin;reg7:0ain,bin;regclk;regclk;myadder(.clock(clk),.reset(rst),.a(ain),.b(bin),.sum(sumout);myadder(.clock(clk),.reset(rst),.a(ain),.b(bin),.sum(sumout);myadder(.clock(clk),.reset(rst),
53、.a(ain),.b(bin),.sum(sumout);initialbeginrst=1initialbeginrst=1;clk=0;ain=0;bin=3;#70rst=0clk=0;ain=0;bin=3;#70rst=0;#70rst=1#70rst=1;endendalways#50clk=clk;always#50clk=clk;always(posedgeclk)always(posedgeclk)beginain=ain+2;bin=bin+5;endbeginain=ain+2;bin=bin+5;endendmoduleendmoduleendmodule山怀松戏项遭娘
54、派雏迈蓖时膏遵洲弧眨诚瘤灿揍守考荒姚曲亦睡色住馏划复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDLVerilog HDL测试测试由于由于 t t 模块中模块中Verilog HDLVerilog HDL语句的功能语句的功能可以对可以对myaddermyadder模块进行测试模块进行测试myaddermyadder模块输入了必须的信号:模块输入了必须的信号:rstr
55、st,clkclk,ainain,binbin观测该模块的输出:观测该模块的输出:sumoutsumout看一看它是否符合设计要求。看一看它是否符合设计要求。 鹏挝挺装喻钥效婿扣滨怖岛靳牙驭传劣参碾身踩铲文街绩软雅吵拖鹅皋猴复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic有关有关Verilog HDLVerilog HDL的的几个重要基本概念几个重要基本概念 1)1)1)1)综合:综合
56、:综合:综合: 通过工具把用通过工具把用Verilog HDLVerilog HDL描述的模描述的模块自动转换为用门级电路网表表示的模块的块自动转换为用门级电路网表表示的模块的过程。过程。2)2)2)2)寄存器传输级寄存器传输级寄存器传输级寄存器传输级Verilog HDLVerilog HDLVerilog HDLVerilog HDL模块:模块:模块:模块:也可称为也可称为RTL RTL (VerilogVerilog) HDL HDL模块。它是符合特定标模块。它是符合特定标准和风格的描述状态转移和变化的准和风格的描述状态转移和变化的 Verilog Verilog HDLHDL模块。能用
57、综合器把它转换为门级逻辑。模块。能用综合器把它转换为门级逻辑。 轧景戌陵拄拽永奢王号压婉握刺悯抡础旬龟绑垦阁库遗契疑赦总貉栏升户复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic有关有关Verilog HDLVerilog HDL的的几个重要基本概念几个重要基本概念 3)3)3)3)Verilog HDLVerilog HDLVerilog HDLVerilog HDL测试模块:测试模块
58、:测试模块:测试模块: 用用Verilog Verilog HDLHDL描述的模块,可以用来产生测试信号描述的模块,可以用来产生测试信号序列并可以接收被测试模块的信号,用序列并可以接收被测试模块的信号,用于验证所设计的模块是否能正常运行,于验证所设计的模块是否能正常运行,往往不可综合成具体门级电路。往往不可综合成具体门级电路。 4)4)4)4)Verilog HDLVerilog HDLVerilog HDLVerilog HDL顶层(测试)模块:顶层(测试)模块:顶层(测试)模块:顶层(测试)模块: 同上。同上。 辽煮孟砾优准瘪娄体再保杖氨渝鹃骨汞聋妄应闽鸥酸汕擦捧赤扒脑揖揉偏复杂数字逻辑的
59、VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic有关有关Verilog HDLVerilog HDL的的几个重要基本概念几个重要基本概念 5)5)5)5)布局布线:布局布线:布局布线:布局布线: 把用综合器自动生成的门级网把用综合器自动生成的门级网表(表(EDIFEDIF)通过运行一个自动操作的布局布线)通过运行一个自动操作的布局布线工具,使其与具体的某种工具,使其与具体的某种FPGAFPGA或某种
60、或某种ASICASIC工艺工艺库器件对应起来,并加以连接的过程。库器件对应起来,并加以连接的过程。 6)6)6)6)Verilog HDLVerilog HDLVerilog HDLVerilog HDL后仿真测试模块:后仿真测试模块:后仿真测试模块:后仿真测试模块: 同同33)、)、44),但被测试的模块至少是一个门级),但被测试的模块至少是一个门级描述的或用具体描述的或用具体FPGA(ASIC)FPGA(ASIC)库器件库器件(带时间延带时间延迟信息迟信息)描述的结构型描述的结构型Verilog HDL Verilog HDL 模块。模块。 底掺老戒佯串冕叹仆刷估秸丹虏醋另缴传如罢鳖捕企枕
61、颜萎罢屿寡蚊碑雀复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog Verilog 模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。 module block1(a, b, c, d, e); module block1(a, b, c, d, e); input a,
62、b, c; input a, b, c; output d, e; output d, e; assign d = a | ( b & c) ; assign d = a | ( b & c) ; assign e = ( b & c ); assign e = ( b & c ); endmodule endmoduleVerilog HDLVerilog HDLVerilog HDLVerilog HDL模块和接口模块和接口模块和接口模块和接口abcde篡刽呻账伐拇乐揽执街细窖稚入些氦悠驻产陇戒磕履矫纫疯该酿讳沾矾嫂复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesign
63、methodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog Verilog Verilog 模块的结构由在模块的结构由在模块的结构由在模块的结构由在模块的结构由在模块的结构由在modulemodulemodule和和和和和和endmodule endmodule endmodule 关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:关键词之间的四个主要部分
64、组成: - - - 端口信息:端口信息:端口信息:端口信息:端口信息:端口信息: module block1(a, b, c, d ); module block1(a, b, c, d ); module block1(a, b, c, d ); - - - 输入输入输入输入输入输入/ /输出说明输出说明输出说明输出说明输出说明输出说明 : input a, b, c ; input a, b, c ; input a, b, c ; output d ; output d ; output d ; - - - 内部信号:内部信号:内部信号:内部信号:内部信号:内部信号: wire x; w
65、ire x; wire x; - - - 功能定义:功能定义:功能定义:功能定义:功能定义:功能定义: assign d = a | x ; assign d = a | x ; assign d = a | x ; assign x = ( b & c ); assign x = ( b & c ); assign x = ( b & c ); endmodule endmodule endmodule Verilog HDLVerilog HDL模块的结构模块的结构衔饥敲骸图辅饮沧撤泛孕醒赢卫昂也布屈部细翰摈妒捉事带茁坊熟瞪洒资复杂数字逻辑的VerilogHDL设计方法HDLVerilog
66、designmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号 使其成为右图的使其成为右图的使其成为右图的使其成为右图的使其成为右图的使其成为右图的Verilog Verilog Verilog 模块模块模块模块模块模块 : module block1(a, b, , , ); mo
67、dule block1(a, b, , , ); module block1(a, b, , , ); input , , ; input , , ; input , , ; d, ; d, ; d, ; assign d = a | ( b & c) ; assign d = a | ( b & c) ; assign d = a | ( b & c) ; assign e = ( b & c ); assign e = ( b & c ); assign e = ( b & c ); _ _ _编写编写编写编写Verilog HDLVerilog HDLVerilog HDLVerilog
68、 HDL模块的练习模块的练习模块的练习模块的练习abcde粒爸鲸拈蛮颁敏臼渡诉恩糕淳几仿闪氛铆狼肇牙盲咎详菱罕箍谎锌娄魏签复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号 使其成为右图的使其成为右图的使其成为
69、右图的使其成为右图的使其成为右图的使其成为右图的Verilog Verilog Verilog 模块模块模块模块模块模块 : module block1(a, b, module block1(a, b, module block1(a, b, cc c , , , dd d, , , ee e ); ); ); input input input aa a, , , bb b, , , cc c; ; output output output d, d, d, ee e ; ; ; assign d = a | ( b & c) ; assign d = a | ( b & c) ; ass
70、ign d = a | ( b & c) ; assign e = ( b & c ); assign e = ( b & c ); assign e = ( b & c ); endmoduleendmoduleendmodule编写编写编写编写Verilog HDLVerilog HDLVerilog HDLVerilog HDL模块的练习模块的练习模块的练习模块的练习abced歼坯婪扮茅杨帘驾囊形乘丑狐吉蒸兄团外阵敬搜睡猛曹钻欧陋嘴妻噬增匈复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的Ver
71、ilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic在在在在在在Verilog Verilog Verilog 模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路: - - - 用用用用用用 assign assign assign 语句:语句:语句:语句:语句:语句: assign cs = ( a0 & a1 & a2 ) ;assign cs = ( a0 & a1 & a2 )
72、;assign cs = ( a0 & a1 & a2 ) ; - - - 用用用用用用 元件的实例调用:元件的实例调用:元件的实例调用:元件的实例调用:元件的实例调用:元件的实例调用: and2 and_inst ( q, a, b); and2 and_inst ( q, a, b); and2 and_inst ( q, a, b); - - - 用用用用用用 always always always 块:块:块:块:块:块: always (posedge clk or posedge clr) always (posedge clk or posedge clr) always (p
73、osedge clk or posedge clr) begin if (clr) q= 0; else if (en) q= d; begin if (clr) q= 0; else if (en) q= d; begin if (clr) q= 0; else if (en) q= d; end end endVerilog HDLVerilog HDL模块中的逻辑表示模块中的逻辑表示abcde还肠鳞梯囤献矽侩脏船阶崔眶祷根魂泰佣竣纺歹仇记耻候欧嗅衡瞪收萌赖复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂
74、数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成 : assign cs = ( a0 & a1 & a2 ) ; / -1 assign cs = ( a0 & a1 & a2 ) ; / -1 assign cs = ( a0 & a1 & a2 ) ; / -1 and2 and_ins
75、t ( qout, a, b); / -2 and2 and_inst ( qout, a, b); / -2 and2 and_inst ( qout, a, b); / -2 always (posedge clk or posedge clr) /-3 always (posedge clk or posedge clr) /-3 always (posedge clk or posedge clr) /-3 begin if (clr) q= 0; else if (en) q= d; begin if (clr) q= 0; else if (en) q= d; begin if (
76、clr) q= 0; else if (en) q= d; end end end三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;而在而在而在而在而在而在 always always always 块中块中块中块中块中块中: begin : begin : begin 与与与与与与 end end end 之间是顺序执行的。之间是顺序执行的。之间是顺序执行的。之间是顺序执行的。之间是顺序执行的
77、。之间是顺序执行的。并行和顺序逻辑关系的表示并行和顺序逻辑关系的表示舰余帛眶面笆煤近舷奥坤注驯滁捷逾抿幕湃偏萝围隧蛤斥巍捆屑彬洋踩棚复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog模块中的信号模块中的信号模块中的信号模块中的信号只有两种主要的信号类型:只有两种主要的信号类型:只有两种主要的信号类型:只有两种主要的信号类型: - -
78、 寄存器类型:寄存器类型:寄存器类型:寄存器类型: reg reg 在在在在always always 块中被赋值的信号,块中被赋值的信号,块中被赋值的信号,块中被赋值的信号,往往往往往往往往代表代表代表代表 触发器,但不一定是触发器。触发器,但不一定是触发器。触发器,但不一定是触发器。触发器,但不一定是触发器。 - - 连线类型:连线类型:连线类型:连线类型: wire wire 用用用用 assign assign 关键词指定的组合逻辑的信号关键词指定的组合逻辑的信号关键词指定的组合逻辑的信号关键词指定的组合逻辑的信号 或连线或连线或连线或连线典粥础碾蓝失订娶幢爆榨金舷烟矽悠贤涟噶望贫吃断
79、棠彩参鲜吱精盂伐巴复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog模块中的信号要点模块中的信号要点模块中的信号要点模块中的信号要点需要注意的是:需要注意的是:需要注意的是:需要注意的是: - - 寄存器寄存器寄存器寄存器 ( ( reg reg )类型不一定是触发器。类型不一定是触发器。类型不一定是触发器。类型不一定是触发器。 -
80、 - 它只是在它只是在它只是在它只是在 always always 块中赋值的信号块中赋值的信号块中赋值的信号块中赋值的信号。绎肆厅赌臭啃翔梗釜佃媳牟侄骄敝断邱柿距琳视屋乃饭加藉趣拎枷就神揭复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog中中中中regregregreg与与与与wirewirewirewire的不同点的不同点的不同
81、点的不同点用寄存器用寄存器用寄存器用寄存器用寄存器用寄存器 (reg) (reg) (reg)类型变量生成组合逻辑举例:类型变量生成组合逻辑举例:类型变量生成组合逻辑举例:类型变量生成组合逻辑举例:类型变量生成组合逻辑举例:类型变量生成组合逻辑举例: module rw1( a, b, out1, out2 ) ;module rw1( a, b, out1, out2 ) ;module rw1( a, b, out1, out2 ) ;input a, b;input a, b;input a, b;output out1, out2;output out1, out2;output ou
82、t1, out2;reg out1;reg out1;reg out1;wire out2;wire out2;wire out2; assign out2 = a ; assign out2 = a ; assign out2 = a ; always (b) out1 = b; always (b) out1 = b; always (b) out1 = b;endmodule endmodule endmodule aout2BUFFbINVout1挑赠歹视守捶荔室报跋故矣例瘪见针贩哲欧镀译玻猿荷佯勒佯缓澳奴翼广复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignm
83、ethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog中中中中regregregreg与与与与wirewirewirewire的不同点的不同点的不同点的不同点用寄存器用寄存器用寄存器用寄存器用寄存器用寄存器 ( reg ) ( reg ) ( reg ) ( reg ) ( reg ) ( reg )类型变量生成触发器的例子:类型变量生成触发器的例子:类型变量生成触发器的例子:类型变量生成触发器的例子:类型变量
84、生成触发器的例子:类型变量生成触发器的例子:module rw2( clk, d, out1, out2 ) ;module rw2( clk, d, out1, out2 ) ;module rw2( clk, d, out1, out2 ) ;input clk, d;input clk, d;input clk, d;output out1, out2;output out1, out2;output out1, out2;reg out1;reg out1;reg out1;wire out2;wire out2;wire out2; assign out2 = d & out1 ;
85、assign out2 = d & out1 ; assign out2 = d & out1 ; always (posedge clk) always (posedge clk) always (posedge clk) begin out1 = d ; end begin out1 = d ; end begin out1 = d ; endendmodule endmodule endmodule dout2AND2i1clkout1DQDFF示脖郑组在伤筐却特八拍至州犬衰钮坡沮旦渺亿啥革员卫亢详都俱附鲤瘩复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmet
86、hodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog中两种不同的赋值语句中两种不同的赋值语句中两种不同的赋值语句中两种不同的赋值语句不阻塞(不阻塞(不阻塞(不阻塞(不阻塞(不阻塞(non-blocking) non-blocking) non-blocking) 赋值语句:赋值语句:赋值语句:赋值语句:赋值语句:赋值语句: always (posedge clk) always (posedge clk) alw
87、ays (posedge clk) begin begin begin b = a ; b = a ; b = a ; c = b; c = b; c = b; end end endclkDFFcDQDQabDFF沧英垄曹创趋弯传褪柯使宏法故冶俊藐遁煮嚏昏敦犯戚谦泣妈讽极雅乌矽复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog中两
88、种不同的赋值语句中两种不同的赋值语句中两种不同的赋值语句中两种不同的赋值语句阻塞(阻塞(阻塞(阻塞(阻塞(阻塞(blocking) blocking) blocking) 赋值语句:赋值语句:赋值语句:赋值语句:赋值语句:赋值语句: always (posedge clk) always (posedge clk) always (posedge clk) begin begin begin b = a ; b = a ; b = a ; c = b; c = b; c = b; end end endclkDFFcDQab胸龙仆厄蛙蝉催蛆炮谚热佩橇拣本总暗县匈倡这癸思剔孽爷牺脚扁镜毒腥复杂数
89、字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic两种不同的赋值语句区别要点两种不同的赋值语句区别要点不阻塞(不阻塞(不阻塞(不阻塞(不阻塞(不阻塞(non-blocking) non-blocking) non-blocking) 赋值语句赋值语句赋值语句赋值语句赋值语句赋值语句 ( b= a) ( b= a) ( b= a): - - - 块内的赋值语句同时赋值;块内的赋值语句同时赋值;块
90、内的赋值语句同时赋值;块内的赋值语句同时赋值;块内的赋值语句同时赋值;块内的赋值语句同时赋值; - b - b - b 的值被赋成新值的值被赋成新值的值被赋成新值的值被赋成新值的值被赋成新值的值被赋成新值 a a a 的操作的操作的操作的操作的操作的操作, , , 是与块内其他是与块内其他是与块内其他是与块内其他是与块内其他是与块内其他 赋值语句同时完成的;赋值语句同时完成的;赋值语句同时完成的;赋值语句同时完成的;赋值语句同时完成的;赋值语句同时完成的; - - - 建议在可综合风格的模块中使用不阻塞赋值。建议在可综合风格的模块中使用不阻塞赋值。建议在可综合风格的模块中使用不阻塞赋值。建议在
91、可综合风格的模块中使用不阻塞赋值。建议在可综合风格的模块中使用不阻塞赋值。建议在可综合风格的模块中使用不阻塞赋值。阻塞(阻塞(阻塞(阻塞(阻塞(阻塞(blocking) blocking) blocking) 赋值语句赋值语句赋值语句赋值语句赋值语句赋值语句 ( b = a) ( b = a) ( b = a): - - - 完成该赋值语句后才能做下一句的操作;完成该赋值语句后才能做下一句的操作;完成该赋值语句后才能做下一句的操作;完成该赋值语句后才能做下一句的操作;完成该赋值语句后才能做下一句的操作;完成该赋值语句后才能做下一句的操作; - b - b - b 的值立刻被赋成新值的值立刻被赋
92、成新值的值立刻被赋成新值的值立刻被赋成新值的值立刻被赋成新值的值立刻被赋成新值 a; a; a; - - - 硬件没有对应的电路,因而综合结果未知硬件没有对应的电路,因而综合结果未知硬件没有对应的电路,因而综合结果未知硬件没有对应的电路,因而综合结果未知硬件没有对应的电路,因而综合结果未知硬件没有对应的电路,因而综合结果未知。善郁印戴佩绪枫奔蛇集骂寓优努柜周翼芳理窝嚣嗓镀噶狮窍总猪皿靶漫肃复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignme
93、thodforcomplexdigitallogic组合组合逻辑设计逻辑设计要点要点 组合逻辑的两种组合逻辑的两种组合逻辑的两种组合逻辑的两种Verilog HDLVerilog HDLVerilog HDLVerilog HDL表示:表示:表示:表示: - - - -用用用用用用 assign assign assign assign assign assign 语句:语句:语句:语句:语句:语句: assign q = (al=1?) d : 0 ;assign q = (al=1?) d : 0 ;assign q = (al=1?) d : 0 ;assign q = (al=1?)
94、d : 0 ;assign q = (al=1?) d : 0 ;assign q = (al=1?) d : 0 ; - - - - - -用用用用用用 always always always always always always 块:块:块:块:块:块: always (al or d) always (al or d) always (al or d) always (al or d) always (al or d) always (al or d) begin begin begin begin begin begin if (al=1) q = d ; if (al=1) q
95、 = d ; if (al=1) q = d ; if (al=1) q = d ; if (al=1) q = d ; if (al=1) q = d ; else q = 0; else q = 0; else q = 0; else q = 0; else q = 0; else q = 0; end end end end end end诧胯节灾谣头共轰蛊诽罩封乌历让鳃蕊厂堑坯滴垃毛椒酞吁唉啃殊揍氟治复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVeril
96、ogdesignmethodforcomplexdigitallogic组合逻辑设计要点组合逻辑设计要点组合逻辑设计要点组合逻辑设计要点组合逻辑的两种组合逻辑的两种组合逻辑的两种组合逻辑的两种Verilog HDLVerilog HDLVerilog HDLVerilog HDL表示:表示:表示:表示: - - - - -用用用用用用alwaysalwaysalwaysalwaysalwaysalways块时,没注意加块时,没注意加块时,没注意加块时,没注意加块时,没注意加块时,没注意加elseelseelseelseelseelse语句:语句:语句:语句:语句:语句: 如:如:如:如:如:如
97、: always (al or d) always (al or d) always (al or d) always (al or d) always (al or d) always (al or d) begin if (al=1) q = d ; begin if (al=1) q = d ; begin if (al=1) q = d ; begin if (al=1) q = d ; begin if (al=1) q = d ; begin if (al=1) q = d ; end end end end end end 则:则:则:则:则:则: 此时生成的不是纯组合逻辑,因为
98、当此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当 al=0 al=0 al=0 al=0 al=0 al=0时,时,时,时,时,时,q qq q q q能保留原来的值,所以生能保留原来的值,所以生能保留原来的值,所以生能保留原来的值,所以生能保留原来的值,所以生能保留原来的值,所以生 成的电路中有锁存器。成的电路中有锁存器。成的电路中有锁存器。成的电路中有锁存器。成的电路中有锁存器。成的电路中有锁存器。岭惹潮怠液妓鼎皋喊寡裸照仑荔胳坛砒算鸣狄拄辨枉矩昧拢淌板薛招喂夕复杂数字逻辑的V
99、erilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic组合逻辑设计要点组合逻辑设计要点组合逻辑设计要点组合逻辑设计要点用用用用alwaysalwaysalwaysalways块时,必须注意电平敏感的信块时,必须注意电平敏感的信块时,必须注意电平敏感的信块时,必须注意电平敏感的信号表是否完全,如:号表是否完全,如:号表是否完全,如:号表是否完全,如: always (a or b or or c or d )
100、 always (a or b or or c or d ) always (a or b or or c or d ) always (a or b or or c or d ) begin begin begin begin out = (a & b & c) | (d & e); out = (a & b & c) | (d & e); out = (a & b & c) | (d & e); out = (a & b & c) | (d & e); end end end end此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当此时生成的不
101、是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当此时生成的不是纯组合逻辑,因为当 e e e e e e 变化时,变化时,变化时,变化时,变化时,变化时,out out out out out out 不不不不不不能立即跟着变化。只有当能立即跟着变化。只有当能立即跟着变化。只有当能立即跟着变化。只有当能立即跟着变化。只有当能立即跟着变化。只有当a a a a a a 或或或或或或 b b b b b b 或或或或或或 c c c c c c 或或或或或或 d d d d d d 变化时变化时变化时变化时变化时变化时e e e e e e 的的的的的的变化后果才显示出来。可见需要有一个寄存器
102、来储存变化后果才显示出来。可见需要有一个寄存器来储存变化后果才显示出来。可见需要有一个寄存器来储存变化后果才显示出来。可见需要有一个寄存器来储存变化后果才显示出来。可见需要有一个寄存器来储存变化后果才显示出来。可见需要有一个寄存器来储存 e e e e e e 的变化。的变化。的变化。的变化。的变化。的变化。徐雍熬抠状熊怀您呛帮良害吗停娠热兜蝶猫掐恕雄扑栽撞给扇垦蓬邪敲职复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforco
103、mplexdigitallogic时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点时序逻辑的时序逻辑的时序逻辑的时序逻辑的Verilog HDLVerilog HDLVerilog HDLVerilog HDL表示:表示:表示:表示: - - - - 用用用用用用 always always always always always always: 如:如:如:如:如:如: always (posedge clock) always (posedge clock) always (posedge clock) always (posedge clock) always (pos
104、edge clock) always (posedge clock) begin (!reset) begin (!reset) begin (!reset) begin (!reset) begin (!reset) begin (!reset) do_reset; do_reset; do_reset; do_reset; do_reset; do_reset; else case(state) else case(state) else case(state) else case(state) else case(state) else case(state) state_1: do_s
105、tate_1; state_1: do_state_1; state_1: do_state_1; state_1: do_state_1; state_1: do_state_1; state_1: do_state_1;偏远肯毒颁谱舜幸诡矿结茅扎沂宗吴袋奋碍羹樊褒由草谷壶遇舔蕊忌射寄复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点时序
106、逻辑设计要点- - 用用用用 always always always always:( ( (继续上页)继续上页)继续上页)继续上页) 如:如:如:如:如:如: state_2: do_state_2; state_2: do_state_2; state_2: do_state_2; state_2: do_state_2; state_2: do_state_2; state_2: do_state_2; state_3: do_state_3; state_3: do_state_3; state_3: do_state_3; state_3: do_state_3; state_3:
107、 do_state_3; state_3: do_state_3; state_4: do_state_4; state_4: do_state_4; state_4: do_state_4; state_4: do_state_4; state_4: do_state_4; state_4: do_state_4; state_5: do_state_5; state_5: do_state_5; state_5: do_state_5; state_5: do_state_5; state_5: do_state_5; state_5: do_state_5; default: state
108、 =xx; default: state =xx; default: state =xx; default: state =xx; default: state =xx; default: state =xx; end end end end end end烛免安奴扰瞬搜肝拥缸匡谐嚎鞍嘘咎衍阿致去盈枷敢藩蕊徘逆赚被菱堵活复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic时序逻辑设计要点时
109、序逻辑设计要点时序逻辑设计要点时序逻辑设计要点- - 用用用用 always always always always:( ( (继续上页)继续上页)继续上页)继续上页) 如:如:如:如:task do_reset;task do_reset;task do_reset;task do_reset;task do_reset;task do_reset; begin begin begin begin begin begin Reset_Every_Register; Reset_Every_Register; Reset_Every_Register; Reset_Every_Registe
110、r; Reset_Every_Register; Reset_Every_Register; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; end end end end end end endtask endtask endtask endtask endtask endtask岸兢贸庞券硕目租调琵胡炸甚诌曾乙蚁漫懂壬件忻茶蠕笺乒芯迁换抠格舌复杂数字逻辑
111、的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点- - 用用用用 always always always always:( ( (继续上页)继续上页)继续上页)继续上页) 如如如如: : : : task do_state_1;task do_state_1;task do_state_1;task do_state_1;task
112、do_state_1;task do_state_1; begin if Condition_Is_True begin if Condition_Is_True begin if Condition_Is_True begin if Condition_Is_True begin if Condition_Is_True begin if Condition_Is_True Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Switch_Proper_Control_L
113、ogic; Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; else Stay_In_Original_State; else Stay_In_Original_State; else Stay_In_Original_State; else
114、Stay_In_Original_State; else Stay_In_Original_State; else Stay_In_Original_State; end end end end end end endtask endtask endtask endtask endtask endtask化荆引掐棘斯地棒桓敬沮淘耘挑巍杆经初控铱嫡蔗删蔗盒键萌贿令赐横菇复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomp
115、lexdigitallogic时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点时序逻辑设计要点- - 用用用用 always always always always:( ( (继续上页)继续上页)继续上页)继续上页) 如如如如: : : : task do_state_2;task do_state_2;task do_state_2;task do_state_2;task do_state_2;task do_state_2; begin if Condition_Is_True begin if Condition_Is_True begin if Condition_Is_True
116、begin if Condition_Is_True begin if Condition_Is_True begin if Condition_Is_True Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Switch_Proper_Control_Logic; Prepare_For_Next_State; Prepare_For_Next_Stat
117、e; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; Prepare_For_Next_State; else Stay_In_Original_State; else Stay_In_Original_State; else Stay_In_Original_State; else Stay_In_Original_State; else Stay_In_Original_State; else Stay_In_Original_State; end end end end end end end
118、task endtask endtask endtask endtask endtask 远印默拟郡岔胜再拢筛硕柱讶抡门菜嫁纹砾翻摆撬疚啄匝胺猖柔胡订声浮复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilogVerilogVerilogVerilog模块的种类和用途模块的种类和用途模块的种类和用途模块的种类和用途行为模块:行为模块:行为模块:行为模块: - - 在仿真时其表现的
119、功能与某实体逻辑电路完在仿真时其表现的功能与某实体逻辑电路完在仿真时其表现的功能与某实体逻辑电路完在仿真时其表现的功能与某实体逻辑电路完在仿真时其表现的功能与某实体逻辑电路完在仿真时其表现的功能与某实体逻辑电路完 全一致的全一致的全一致的全一致的全一致的全一致的 Verilog HDL Verilog HDL Verilog HDL 模块,但并没有手段模块,但并没有手段模块,但并没有手段模块,但并没有手段模块,但并没有手段模块,但并没有手段 生成对应的门级逻辑电路与之对应。生成对应的门级逻辑电路与之对应。生成对应的门级逻辑电路与之对应。生成对应的门级逻辑电路与之对应。生成对应的门级逻辑电路与之
120、对应。生成对应的门级逻辑电路与之对应。可综合模块:可综合模块:可综合模块:可综合模块: - - - 可通过综合工具,自动地转换为门级逻辑电可通过综合工具,自动地转换为门级逻辑电可通过综合工具,自动地转换为门级逻辑电可通过综合工具,自动地转换为门级逻辑电可通过综合工具,自动地转换为门级逻辑电可通过综合工具,自动地转换为门级逻辑电 路的路的路的路的路的路的 Verilog HDL Verilog HDL Verilog HDL 模块。它的仿真可以在两模块。它的仿真可以在两模块。它的仿真可以在两模块。它的仿真可以在两模块。它的仿真可以在两模块。它的仿真可以在两 个层次上进行,行为级和门级。个层次上进
121、行,行为级和门级。个层次上进行,行为级和门级。个层次上进行,行为级和门级。个层次上进行,行为级和门级。个层次上进行,行为级和门级。 尾裁逆禹禹垦格盐烦掳煌纱涯弦泄碴胡湖撅仰疯遣凰溶毖脊难考起漠彰佰复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic HDLHDLHDLHDL行为模块的功能行为模块的功能行为模块的功能行为模块的功能行为模块:行为模块:行为模块:行为模块: - - - 用于系统
122、分割时验证各部分的功能指标分配用于系统分割时验证各部分的功能指标分配用于系统分割时验证各部分的功能指标分配用于系统分割时验证各部分的功能指标分配用于系统分割时验证各部分的功能指标分配用于系统分割时验证各部分的功能指标分配 是否合理;是否合理;是否合理;是否合理;是否合理;是否合理; - - - 在仿真时可用于替代与所设计电路系统相连在仿真时可用于替代与所设计电路系统相连在仿真时可用于替代与所设计电路系统相连在仿真时可用于替代与所设计电路系统相连在仿真时可用于替代与所设计电路系统相连在仿真时可用于替代与所设计电路系统相连 接的现成可购得的外围电路;接的现成可购得的外围电路;接的现成可购得的外围电
123、路;接的现成可购得的外围电路;接的现成可购得的外围电路;接的现成可购得的外围电路; - - - 用于产生测试信号和数据输入到所设计电路用于产生测试信号和数据输入到所设计电路用于产生测试信号和数据输入到所设计电路用于产生测试信号和数据输入到所设计电路用于产生测试信号和数据输入到所设计电路用于产生测试信号和数据输入到所设计电路 系统并接收它的应答信号和输出以验证其功系统并接收它的应答信号和输出以验证其功系统并接收它的应答信号和输出以验证其功系统并接收它的应答信号和输出以验证其功系统并接收它的应答信号和输出以验证其功系统并接收它的应答信号和输出以验证其功 能。能。能。能。能。能。男态烙宅皂箱鹅娄大膘
124、院肇磺刑茬骑斯斤妓射长幸追淖皋坠浩糠片选烫舶复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicHDLHDL可综合模块的功能可综合模块的功能可综合模块:可综合模块:可综合模块:可综合模块: - - - 想要设计的用硬线逻辑构成的电路系统;想要设计的用硬线逻辑构成的电路系统;想要设计的用硬线逻辑构成的电路系统;想要设计的用硬线逻辑构成的电路系统;想要设计的用硬线逻辑构成的电路系统;想要设计的
125、用硬线逻辑构成的电路系统; - - - 由基本的逻辑器件为基础所构成的各种层次由基本的逻辑器件为基础所构成的各种层次由基本的逻辑器件为基础所构成的各种层次由基本的逻辑器件为基础所构成的各种层次由基本的逻辑器件为基础所构成的各种层次由基本的逻辑器件为基础所构成的各种层次 的结构模块;的结构模块;的结构模块;的结构模块;的结构模块;的结构模块; - - - 综合器能理解并能将其编译为门级逻辑的模综合器能理解并能将其编译为门级逻辑的模综合器能理解并能将其编译为门级逻辑的模综合器能理解并能将其编译为门级逻辑的模综合器能理解并能将其编译为门级逻辑的模综合器能理解并能将其编译为门级逻辑的模 块;块;块;块
126、;块;块; - - - 对一般的综合器而言,单纯的对一般的综合器而言,单纯的对一般的综合器而言,单纯的对一般的综合器而言,单纯的对一般的综合器而言,单纯的对一般的综合器而言,单纯的RTLRTLRTL级级级级级级VerilogVerilogVerilog HDL HDL HDL模块以及模块以及模块以及模块以及模块以及模块以及 RTL RTL RTL 和结构型混合和结构型混合和结构型混合和结构型混合和结构型混合和结构型混合HDLHDLHDL模块。模块。模块。模块。模块。模块。呜焊邱盗局孜宜耘伟眉针虹泣列坚诸吸菱该辈奎愈鹏联窄娟鱼他夹粟累贬复杂数字逻辑的VerilogHDL设计方法HDLVerilo
127、gdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic为什么为什么为什么为什么VerilogVerilogVerilogVerilog能支持大型设计能支持大型设计能支持大型设计能支持大型设计Verilog Verilog 语法支持多层次多模块设计:语法支持多层次多模块设计:语法支持多层次多模块设计:语法支持多层次多模块设计: - - - 用用用用用用 include include include 宏指令可以在一个模块中包含多个模宏指令可以在一个模块
128、中包含多个模宏指令可以在一个模块中包含多个模宏指令可以在一个模块中包含多个模宏指令可以在一个模块中包含多个模宏指令可以在一个模块中包含多个模 块;块;块;块;块;块; - - - 在一个模块中可以用实例调用别的模块中定义的在一个模块中可以用实例调用别的模块中定义的在一个模块中可以用实例调用别的模块中定义的在一个模块中可以用实例调用别的模块中定义的在一个模块中可以用实例调用别的模块中定义的在一个模块中可以用实例调用别的模块中定义的 电路结构,构成多层次模块;电路结构,构成多层次模块;电路结构,构成多层次模块;电路结构,构成多层次模块;电路结构,构成多层次模块;电路结构,构成多层次模块; - -
129、- 在一个模块中可以用多个任务和函数来表在一个模块中可以用多个任务和函数来表在一个模块中可以用多个任务和函数来表在一个模块中可以用多个任务和函数来表在一个模块中可以用多个任务和函数来表在一个模块中可以用多个任务和函数来表 达复杂达复杂达复杂达复杂达复杂达复杂 的状态机和结构;的状态机和结构;的状态机和结构;的状态机和结构;的状态机和结构;的状态机和结构; - - - 一个设计项目往往由一个顶层测试模块和多个可一个设计项目往往由一个顶层测试模块和多个可一个设计项目往往由一个顶层测试模块和多个可一个设计项目往往由一个顶层测试模块和多个可一个设计项目往往由一个顶层测试模块和多个可一个设计项目往往由一
130、个顶层测试模块和多个可 综合模块和若干个外围接口模块构成。综合模块和若干个外围接口模块构成。综合模块和若干个外围接口模块构成。综合模块和若干个外围接口模块构成。综合模块和若干个外围接口模块构成。综合模块和若干个外围接口模块构成。券熙暗菲唇渣泳膏爬潜急榨惶锯噬伍沾脚狄充拯首袖病虎波彬旧搞日严袜复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic为什么为什么为什么为什么VerilogVeril
131、ogVerilogVerilog能支持大型设计能支持大型设计能支持大型设计能支持大型设计设计项目举例:设计项目举例:设计项目举例:设计项目举例: - myproject- myproject - - 可综合部分可综合部分可综合部分可综合部分 (我们想要设计的逻辑电路部分):(我们想要设计的逻辑电路部分):(我们想要设计的逻辑电路部分):(我们想要设计的逻辑电路部分): - mk_1.v, mk_2.v, mk_3.v, .mk_8.v - mk_1.v, mk_2.v, mk_3.v, .mk_8.v - mk_11.v, mk_12.v , mk_13.v. - mk_11.v, mk_12
132、.v , mk_13.v. - mk_21.v, mk_22.v, mk_23.v . - mk_21.v, mk_22.v, mk_23.v . - . - . - mk_81.v, mk_82.v, mk_83.v . - mk_81.v, mk_82.v, mk_83.v . 怒扁猪牛厚沽哪怪棵哭锯抬痒啡砸宜哈编嗣蔽陇巡桑疹陇锻敞硷利谣涩翠复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitall
133、ogic为什么为什么为什么为什么VerilogVerilogVerilogVerilog能支持大型设计能支持大型设计能支持大型设计能支持大型设计设计项目举例:设计项目举例:设计项目举例:设计项目举例: - myproject- myproject- myproject - - - 外围部分:外围部分:外围部分:外围部分:外围部分:外围部分: - ww_1.v, ww_2.v, ww_3.v, ww_4.v . - ww_1.v, ww_2.v, ww_3.v, ww_4.v . - ww_1.v, ww_2.v, ww_3.v, ww_4.v . - - - 激励部分:激励部分:激励部分:激励
134、部分:激励部分:激励部分: - SG_1.v, SG_2.v . - SG_1.v, SG_2.v . - SG_1.v, SG_2.v . - - - 顶层测试模块:顶层测试模块:顶层测试模块:顶层测试模块:顶层测试模块:顶层测试模块: - - - 包括可综合部分、外围部分、激励部分包括可综合部分、外围部分、激励部分包括可综合部分、外围部分、激励部分包括可综合部分、外围部分、激励部分包括可综合部分、外围部分、激励部分包括可综合部分、外围部分、激励部分 - - - 还包括测试步骤和输出文件等还包括测试步骤和输出文件等还包括测试步骤和输出文件等还包括测试步骤和输出文件等还包括测试步骤和输出文件等
135、还包括测试步骤和输出文件等。诅葱秸樱槛防矣另桌煮酒警舜恒宁蚜斋凤匀悯淡侗渣烛磨埠抖截聋鞋徊目复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic其他形式的其他形式的其他形式的其他形式的 Verilog Verilog Verilog Verilog 模块模块模块模块外围部分:外围部分:外围部分:外围部分: - - 这部分逻辑不用综合成电路,但为了验证我这部分逻辑不用综合成电路,但为了验证我
136、这部分逻辑不用综合成电路,但为了验证我这部分逻辑不用综合成电路,但为了验证我这部分逻辑不用综合成电路,但为了验证我这部分逻辑不用综合成电路,但为了验证我 们的设计,们的设计,们的设计,们的设计,们的设计,们的设计, 其行为必须与真实器件完全一其行为必须与真实器件完全一其行为必须与真实器件完全一其行为必须与真实器件完全一其行为必须与真实器件完全一其行为必须与真实器件完全一 致。致。致。致。致。致。 下面我们介绍一个简化的下面我们介绍一个简化的下面我们介绍一个简化的下面我们介绍一个简化的下面我们介绍一个简化的下面我们介绍一个简化的RAMRAMRAM模块,我们所模块,我们所模块,我们所模块,我们所模
137、块,我们所模块,我们所 设计的电路用到了该设计的电路用到了该设计的电路用到了该设计的电路用到了该设计的电路用到了该设计的电路用到了该RAM, RAM, RAM, 但电路结构中并但电路结构中并但电路结构中并但电路结构中并但电路结构中并但电路结构中并 不包括这个不包括这个不包括这个不包括这个不包括这个不包括这个RAMRAMRAM。鬃蘑貉费严龚氏锹困墅卷烤报堤烯忙恐络坐灯叫恐窝遍快首还杀赋殖裤顽复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignme
138、thodforcomplexdigitallogicRAM RAM RAM RAM 的的的的 Verilog Verilog Verilog Verilog 模块模块模块模块timescale 1ns/1ns timescale 1ns/1ns timescale 1ns/1ns module ram(data, addr, ena, read, write) ; module ram(data, addr, ena, read, write) ; module ram(data, addr, ena, read, write) ; inout 7:0 data; inout 7:0 data
139、; inout 7:0 data; input 9:0 addr; input 9:0 addr; input 9:0 addr; input ena, read,write; input ena, read,write; input ena, read,write; reg 7:0 ram8 hff : 0; reg 7:0 ram8 hff : 0; reg 7:0 ram8 hff : 0; assign # 20 data = (read & ena)? ramaddr : 8 hzz; assign # 20 data = (read & ena)? ramaddr : 8 hzz;
140、 assign # 20 data = (read & ena)? ramaddr : 8 hzz;安栓鳖渴展闰里埔甭雏丽萎占抨傍佰屋浦漾驮练桑设文墒叮乳姜涝靛回立复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicRAM RAM RAM RAM 的的的的 Verilog Verilog Verilog Verilog 模块模块模块模块(续上页)续上页)续上页)续上页)续上页)续上页) a
141、lways (posedge write)always (posedge write)always (posedge write) begin begin begin #10 ramaddr = data; #10 ramaddr = data; #10 ramaddr = data; end end end endmodule endmodule endmodule哈撮糊栓扔挪绘谋虐吨锡剥继痘孝吼汹宪漱崔通括汞羞秉番榴垢撰马星贺复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设
142、计方法HDLVerilogdesignmethodforcomplexdigitallogic激励源的激励源的激励源的激励源的 Verilog Verilog Verilog Verilog 模块模块模块模块timescale 1ns/1nstimescale 1ns/1nstimescale 1ns/1nsdefine timeslice 200define timeslice 200define timeslice 200module sigs (ack,clock,read,write,addr,data);module sigs (ack,clock,read,write,addr,d
143、ata);module sigs (ack,clock,read,write,addr,data);input ack;input ack;input ack;output clock, read, write;output clock, read, write;output clock, read, write;output 15:0 addr;output 15:0 addr;output 15:0 addr;inout 7:0 data;inout 7:0 data;inout 7:0 data;reg clock, read, write;reg clock, read, write;
144、reg clock, read, write;烩具煮脑残锈器伟上桂旬历居稍偶牙酗杏席贪螺铲痹帅炯犊度苇蝗蝗果伴复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic激励源的激励源的激励源的激励源的 Verilog Verilog Verilog Verilog 模块模块模块模块(续上页)(续上页)(续上页)(续上页)(续上页)(续上页)reg 15:0 addr;reg 15:0 addr;
145、reg 15:0 addr;reg w_r ; /used to record if read or writereg w_r ; /used to record if read or writereg w_r ; /used to record if read or writereg 7:0 DataToRam; /used to stack the datareg 7:0 DataToRam; /used to stack the datareg 7:0 DataToRam; /used to stack the dataassign #10 data = (w_r)? hzz : Dat
146、aToRam;assign #10 data = (w_r)? hzz : DataToRam;assign #10 data = (w_r)? hzz : DataToRam;initial initial initial begin clock = 0; w_r = 0; DataToRam=0; begin clock = 0; w_r = 0; DataToRam=0; begin clock = 0; w_r = 0; DataToRam=0;饰渔吹课熄坎程灶阎贩葱放策孤壹障杉涸竖之葬浓弊差奶七祥砂枷仕郑尚复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignme
147、thodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic激励源的激励源的激励源的激励源的 Verilog Verilog Verilog Verilog 模块模块模块模块( (续上页)续上页)续上页)续上页)续上页)续上页) addr = 16 h 0000 ; endaddr = 16 h 0000 ; endaddr = 16 h 0000 ; end always # ( timeslice/2) clock = clock; always # ( timesli
148、ce/2) clock = clock; always # ( timeslice/2) clock = clock; always (posedge ack) always (posedge ack) always (posedge ack) if (w_r = 0) if (w_r = 0) if (w_r = 0) begin #(5*timeslice) write = 1; begin #(5*timeslice) write = 1; begin #(5*timeslice) write = 1; # (timeslice) write = 0; # (timeslice) wri
149、te = 0; # (timeslice) write = 0; end end end鄂脐该鄂去绞砖疚热遗毯恬湿拱恍敷玻原盎拳秽卞链反当延斗萧封氮怠全复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic激励源的激励源的激励源的激励源的 Verilog Verilog Verilog Verilog 模块模块模块模块(续上页)续上页)续上页)续上页) else begin else beg
150、in # (5 * timeslice) read = 1; # (5 * timeslice) read = 1; # (timeslice) read = 0; # (timeslice) read = 0; end end always (posedge ack) always (posedge ack) begin DataToRam = DataToRam + 2; begin DataToRam = DataToRam + 2; addr = addr + 1; addr = addr + 1; end endendmodule endmodule 宜窥范吕绣长庚朗裕蔼受添工湛笛缀
151、铲引卸宾绦蜕电食会帆孜炼椭坍划坊复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic激励源的激励源的激励源的激励源的 Verilog Verilog Verilog Verilog 模块模块模块模块(续上页)续上页)续上页)续上页) - - 上面这个模块可根据从被测试模块输出上面这个模块可根据从被测试模块输出上面这个模块可根据从被测试模块输出上面这个模块可根据从被测试模块输出 的的的的 a
152、ck ack 信号逐一发出读信号逐一发出读信号逐一发出读信号逐一发出读/写、地址、数据写、地址、数据写、地址、数据写、地址、数据 至被测试模块,可以用来检验被测试模至被测试模块,可以用来检验被测试模至被测试模块,可以用来检验被测试模至被测试模块,可以用来检验被测试模 块的功能是否正确,但没有具体的门级块的功能是否正确,但没有具体的门级块的功能是否正确,但没有具体的门级块的功能是否正确,但没有具体的门级 电路系统与之对应电路系统与之对应电路系统与之对应电路系统与之对应。挽缀词舍转堪踊讼剧碧紧荚能垢聂芍继死文拆残大春剿拥斡翠振纳舷纺丢复杂数字逻辑的VerilogHDL设计方法HDLVerilogd
153、esignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic顶层测试顶层测试顶层测试顶层测试 Verilog Verilog Verilog Verilog 模块模块模块模块timescale 1ns/1nstimescale 1ns/1nstimescale 1ns/1nsinclude include include 可综合模块可综合模块可综合模块可综合模块可综合模块可综合模块.v . . . .v . . . .v . . . .include incl
154、ude include 外围电路外围电路外围电路外围电路外围电路外围电路.v . . . .v . . . .v . . . .include include include 激励信号激励信号激励信号激励信号激励信号激励信号.v . . . .v . . . .v . . . .module top;module top;module top;wire wire wire 连线定义连线定义连线定义连线定义连线定义连线定义 . . . . . . . . . . . . Reg Reg Reg 初试化块中寄存器定义初试化块中寄存器定义初试化块中寄存器定义初试化块中寄存器定义初试化块中寄存器定义初
155、试化块中寄存器定义 . . . . . . . . . . . . initial begin initial begin initial begin 定义波形记录、输入数据文件、记录输出文件定义波形记录、输入数据文件、记录输出文件定义波形记录、输入数据文件、记录输出文件定义波形记录、输入数据文件、记录输出文件定义波形记录、输入数据文件、记录输出文件定义波形记录、输入数据文件、记录输出文件 、 监视重要信号、记录重要时刻、设置仿真时间等。监视重要信号、记录重要时刻、设置仿真时间等。监视重要信号、记录重要时刻、设置仿真时间等。监视重要信号、记录重要时刻、设置仿真时间等。监视重要信号、记录重要时刻
156、、设置仿真时间等。监视重要信号、记录重要时刻、设置仿真时间等。 end end end妙沂橇威食李稳练浑揪氮沦酿牙茸舌舰拷栗以瞄姻棘敞籽非别帜靖甄呐咯复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic顶层测试顶层测试顶层测试顶层测试 Verilog Verilog Verilog Verilog 模块模块模块模块信号模块信号模块信号模块信号模块 xh1( .clock( clk), .r
157、eset(rst), .ack(ackn) . . . . .); xh1( .clock( clk), .reset(rst), .ack(ackn) . . . . .); . . . . . . . . . .可综合模块可综合模块可综合模块可综合模块 mysj1(. clock(clk), reset(rst),.ack(ackn) . . .); mysj1(. clock(clk), reset(rst),.ack(ackn) . . .); . . . . . . . . . . 外围模块外围模块外围模块外围模块 ram1(.read(rd), .write(wrt), .data
158、(databus) . . ram1(.read(rd), .write(wrt), .data(databus) . . .);.); . . . . . . . . . .endmodule endmodule 棋描杯衅造崖拐慌午溅糠氏雹瞻脂暴胯咀删豺天玫摆奠钟卒部叹除獭忿领复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic不同抽象级别的不同抽象级别的不同抽象级别的不同抽象级别的 H
159、DL HDL HDL HDL 模型模型模型模型系统级系统级系统级系统级 (System LevelSystem Level)算法级算法级算法级算法级 ( Algorithm Level) ( Algorithm Level)寄存器传输级寄存器传输级寄存器传输级寄存器传输级 (Register Transfer Level) (Register Transfer Level)门级门级门级门级 ( Gate Level) ( Gate Level)开关级(开关级(开关级(开关级(Switch LevelSwitch Level)捂姿枫问掏阶紊氯赢飞祷宝饱棉扦甩踞禄蛇群嫌沧赚妻慕丹漫饰索怜釜堰复杂数
160、字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic可综合的可综合的可综合的可综合的 Verilog HDL Verilog HDL Verilog HDL Verilog HDL 模型模型模型模型算法级算法级算法级算法级算法级算法级 ( Algorithm Level) ( Algorithm Level) ( Algorithm Level) - - - 部分可综合部分可综合部分可综合部分可
161、综合部分可综合部分可综合寄存器传输级寄存器传输级寄存器传输级寄存器传输级寄存器传输级寄存器传输级 (Register Transfer Level) (Register Transfer Level) (Register Transfer Level) - - - 完全可综合完全可综合完全可综合完全可综合完全可综合完全可综合门级门级门级门级门级门级 ( Gate Level) ( Gate Level) ( Gate Level) - - - 完全可综合完全可综合完全可综合完全可综合完全可综合完全可综合开关级(开关级(开关级(开关级(开关级(开关级(Switch LevelSwitch Lev
162、elSwitch Level) - - - 用于基本逻辑器件仿真模型的建库用于基本逻辑器件仿真模型的建库用于基本逻辑器件仿真模型的建库用于基本逻辑器件仿真模型的建库用于基本逻辑器件仿真模型的建库用于基本逻辑器件仿真模型的建库虾抚植系坯韶柑馋灭导暂悄包卿顾册似香韵丝镊脑涧悍已事终萎孙猖铅专复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic综合工具和要点综合工具和要点综合工具和要点综合工具和
163、要点综合是把综合是把综合是把综合是把综合是把综合是把 Verilog HDL Verilog HDL Verilog HDL源代码通过综合工具,源代码通过综合工具,源代码通过综合工具,源代码通过综合工具,源代码通过综合工具,源代码通过综合工具, 转变为相应工艺的门级逻辑表示的一个过程;转变为相应工艺的门级逻辑表示的一个过程;转变为相应工艺的门级逻辑表示的一个过程;转变为相应工艺的门级逻辑表示的一个过程;转变为相应工艺的门级逻辑表示的一个过程;转变为相应工艺的门级逻辑表示的一个过程;在综合之前,在综合之前,在综合之前,在综合之前,在综合之前,在综合之前, Verilog HDL Verilog
164、HDL Verilog HDL源代码的风格必须源代码的风格必须源代码的风格必须源代码的风格必须源代码的风格必须源代码的风格必须 经过严格检查,仅仅符合语法不一定能综合;经过严格检查,仅仅符合语法不一定能综合;经过严格检查,仅仅符合语法不一定能综合;经过严格检查,仅仅符合语法不一定能综合;经过严格检查,仅仅符合语法不一定能综合;经过严格检查,仅仅符合语法不一定能综合;不同的综合工具性能有差别,支持的不同的综合工具性能有差别,支持的不同的综合工具性能有差别,支持的不同的综合工具性能有差别,支持的不同的综合工具性能有差别,支持的不同的综合工具性能有差别,支持的VerilogVerilogVerilo
165、g HDL HDL HDL源代码的语法集合和风格也略有差别。源代码的语法集合和风格也略有差别。源代码的语法集合和风格也略有差别。源代码的语法集合和风格也略有差别。源代码的语法集合和风格也略有差别。源代码的语法集合和风格也略有差别。综合工具必须在已知基本逻辑单元库的前提综合工具必须在已知基本逻辑单元库的前提综合工具必须在已知基本逻辑单元库的前提综合工具必须在已知基本逻辑单元库的前提综合工具必须在已知基本逻辑单元库的前提综合工具必须在已知基本逻辑单元库的前提 下,才能进行综合。下,才能进行综合。下,才能进行综合。下,才能进行综合。下,才能进行综合。下,才能进行综合。胡宾萝瓦箍腆燎龋痈浩魏萍舀撼容佰
166、综氦肛醋钥铲搜习撵刺高傀跨才居弊复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic仿真和综合工具概述仿真和综合工具概述仿真和综合工具概述仿真和综合工具概述常用的仿真工具:常用的仿真工具:常用的仿真工具:常用的仿真工具: - Verilog -XLVerilog -XL - NC -Verilog - NC -Verilog - ModelSim - ModelSim - VeriBest
167、 - VeriBest - ViewLogic - ViewLogic - . . . . . - . . . . .常用的综合工具:常用的综合工具:常用的综合工具:常用的综合工具: - Synplify - Synplify - Exemplar - Exemplar - Synopsys Express - Synopsys Express - Synopsys - Synopsys DesignerDesigner - . . . . . - . . . . .篓剁啊突崇绣蛤稻镊斤塞脓李预冒边濒唱希铜猪订烤祈恋峻镑形农疾斥绪复杂数字逻辑的VerilogHDL设计方法HDLVerilogd
168、esignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogicVerilog HDL Verilog HDL Verilog HDL Verilog HDL 设计示例设计示例设计示例设计示例 设计示例一设计示例一设计示例一设计示例一:用基本逻辑单元构成上层逻辑:用基本逻辑单元构成上层逻辑:用基本逻辑单元构成上层逻辑:用基本逻辑单元构成上层逻辑 设计示例二设计示例二设计示例二设计示例二:结构型模块的构成:结构型模块的构成:结构型模块的构成:结构型模块的构成 设计示
169、例三设计示例三设计示例三设计示例三:模块的测试和功能验证入门:模块的测试和功能验证入门:模块的测试和功能验证入门:模块的测试和功能验证入门 设计示例四设计示例四设计示例四设计示例四:简单状态机设计要点:简单状态机设计要点:简单状态机设计要点:简单状态机设计要点 设计示例五设计示例五设计示例五设计示例五 设计示例六设计示例六设计示例六设计示例六 设计示例七设计示例七设计示例七设计示例七摊丝悉耐烦异兴诗憨枪校诗池沏逃被案痉确逼梭许病栓赖铡吃粹米撼庙无复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic