数字系统设计基础桂林电子科技大学多媒体课件中心_第1页
数字系统设计基础桂林电子科技大学多媒体课件中心_第2页
数字系统设计基础桂林电子科技大学多媒体课件中心_第3页
数字系统设计基础桂林电子科技大学多媒体课件中心_第4页
数字系统设计基础桂林电子科技大学多媒体课件中心_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

数字系统设计基础主讲:谢跃雷(讲师)Verilog部分介绍VerilogHDL,内容包括:Verilog应用Verilog语言的构成元素结构级描述及仿真行为级描述及仿真延时的特点及说明介绍Verilogtestbench激励和控制和描述结果的产生及验证任务task及函数function用户定义的基本单元(primitive)可综合的Verilog描述风格第一讲VerilogHDL数字系统设计综述Verilog概述结构化设计方法Verilog建模硬件描述语言HDL:描述电路硬件及时序的一种编程语言仿真器:读入HDL并进行解释及执行的一种软件抽象级:描述风格的详细程度,如行为级和门级ASIC:专用集成电路(ApplicationSpecificIntegratedCircuit)ASICVender:芯片制造商,开发并提供单元库自下而上的设计流程:一种先构建底层单元,然后由底层单元构造更大的系统的设计方法。自顶向下的设计流程:一种设计方法,先用高抽象级构造系统,然后再设计下层单元RTL级:寄存器传输级(RegisterTransferLevel),用于设计的可综合的一种抽象级Tcl:ToolcommandLanguage,向交互程序输入命令的描述语言术语定义(termsanddefinitions)VerilogHDL是在1983年由GDA(GateWayDesignAutomation)公司的PhilMoorby所创。PhiMoorby后来成为Verilog-XL的主要设计者和Cadence公司的第一个合伙人。在1984~1985年间,Moorby设计出了第一个Verilog-XL的仿真器。1986年,Moorby提出了用于快速门级仿真的XL算法。1990年,Cadence公司收购了GDA公司1991年,Cadence公司公开发表Verilog语言,成立了OVI(OpenVerilogInternational)组织来负责VerilogHDL语言的发展。1995年制定了VerilogHDL的IEEE标准,即IEEE1364。2005年制定了verilogHDL的IEEE新标准,又称SystemverilogV3.1标准.1.Verilog的历史1.1Verilog概述2.Verilog与VHDL两者的区别:VHDL侧重于系统级描述,从而更多的为系统级设计人员所采用Verilog侧重于电路级描述,从而更多的为电路级设计人员所采用目前,设计者使用Verilog和VHDL的情况美国:Verilog:80%,VHDL:20%台湾:Verilog:50%,VHDL:50%中国的微电子设计公司,90%以上采用Verilog,对于从事FPGA开发设计者,掌握Verilog或VHDL都可以,对于ASIC设计者,必须掌握Verilog,掌握VHDL。3.VerilogHDL与C语言虽然Verilog的某些语法与C语言接近,但存在本质上的区别Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真C语言是一种软件语言,是控制硬件来实现某些功能利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来SystemVerilogandSystemC:面向SOC4.Verilog的用途Verilog的主要应用包括:ASIC和FPGA工程师编写可综合的RTL代码高抽象级系统仿真进行系统结构开发测试工程师用于编写各种层次的测试程序用于ASIC和FPGA单元或更高层次的模块的模型开发1.数字IC设计层次与verilog描述抽象层次时序单位基本单元电路的功能描述系统级数据处理进程及通信自然语言描述或者相互通信的进程算法级运算步运算的控制行为有限状态机、数据流图、控制流图寄存器变换级(RTL)时钟周期寄存器、运算、变换布尔方程、二元决策图、有限状态机逻辑门级延时逻辑门、器件(晶体管)原理图电路级物理时间晶体管、R,L,C等电压、电流的微分方程物理(版图)级几何图形前端后端1.2结构化设计方法Verilog既是一种行为描述的语言也是一种结构描述语言。Verilog模型可以是实际电路的不同层次的抽象,一般分为四个抽象级:系统说明/行为级-设计文档/算术描述RTL/功能级-Verilog门级/结构级-Verilog版图/物理级-几何图形行为综合综合前仿真逻辑综合综合后仿真版图Verilog设计在抽象级上需要进行折衷系统说明/行为级-设计文档/算术描述RTL/功能级-Verilog门级/结构级-Verilog版图/物理级-几何图形详细程度低高输入/仿真速度高低一个设计可以用任何层次来表示,当设计从上而下进行时,该设计就逐步接近物理实现,在表示上就更少了一些抽象。但一个设计所需的细节会随着它在层次中的下降而增加。细节不充分会造成不精确的结果,过多的细节则会使该层次的设计复杂。Verilog可以在3个抽象级上建模n+n+SGD+版图级电路级逻辑门级RTL级系统级和算法级行为描述(Behavior)数据流描述(DataFlow)结构描述(Structure)混合描述||++行为级用功能块之间的数据流对系统进行描述在需要时在函数块之间进行调度赋值。RTL级/功能级用功能块内部或功能块之间的数据流和控制信号描述系统基于一个已定义的时钟的周期来定义系统模型结构级/门级用基本单元(primitive)或低层元件(component)的连接来描述系统以得到更高的精确性,特别是时序方面。在综合时用特定工艺和低层元件将RTL描述映射到门级网表抽象级(LevelsofAbstraction)描述选取设计工程师在不同的设计阶段采用不同的抽象级首先在行为级描述各功能块,以降低描述难度,提高仿真速度。在综合前将各功能模块进行RTL级描述。用于综合的库中的大多数单元采用结构级描述。在本教程中的结构级描述部分将对结构级(门级)描述进行更详细的说明。Verilog还有一定的晶体管级描述能力及算法级描述能力2.自顶向下(Top-Down)的结构化设计方法

一个系统由总设计师先进行系统描述,将系统划分为若干模块,编写模块模型(一般为行为级),仿真验证后,再把这些模块分配给下一层的设计师,由他们完成模块的具体设计,而总设计师负责各模块的接口定义顶层模块子模块1子模块2子模块3基本单元基本单元基本单元基本单元基本单元基本单元(1).相对独立、功能单一的模块结构结构化设计的基本思想是将系统设计成由多个相对独立、功能单一的模块组成的结构。由于模块之间相对独立,每一模块就可以单独地被理解、编写、测试、排错和修改,从而可以有效防止错误在模块之间的扩散,提高系统的质量。

(2).“块内联系大,块间联系小”的模块性能标准模块内部联系要大,模块之间联系要小,这是结构化设计中衡量模块相对独立性能的标准。事实上,块内联系和块间联系是同一个事物的两个方面。若把联系密切的成分组织在同一模块中,块内系统高了,块间联系自然就少了。

(3).采用模块结构图的描述方式结构化设计方法使用的描述方式是模块结构图,即以图形的方式来表达。结构化设计方法特点:(1)分割后最底层的逻辑块应适合用逻辑语言进行表达。如果利用逻辑图作最底层模块输入方法,需要分解到门,触发器和宏模块一级;用HDL行为描述语言则可以分解到算法一级。(2)考虑共享模块。在设计中,往往会出现一些功能相似的逻辑模块,相似的功能应该设计成共享的基本模块,象子程序一样由高层逻辑块调用。这样可以减少需要设计的模块数目、改善设计的结构化特性。(3)接口信号线最少。复杂的接口信号容易引起设计错误,并且给布线带来困难。以交互信号的最少的地方为边界划分模块,用最少的信号线进行信号和数据的交换为最佳的方法。模块划分原则:(4)结构均称。同层次的模块之间,在资源和I/O分配上,不出现悬殊的差异,没有明显的结构和性能上的瓶颈。(5)通用性好,易于移植。模块的划分和设计应满足通用性要求,模块设计应考虑移植的问题。一个好的设计模型块应该可以在其它设计中使用,并且容易升级和移植;另外,在设计中应尽可能避免使用与器件有关的特性,即设计具有可移植性。

1.3Verilog建模现在我们将层次建模的概念和verilog联系起来。verilog使用模块(module)的概念来代表一个基本的功能块。模块通过接口(输入和输出)被高层的模块调用,但隐藏了内部的实现细节。这样就使得设计者可以方便地对某个模块进行修改,而不影响设计的其他部分。线。线是器件管脚之间的物理连线;Verilog中用变量wire器件。等同于模块的概念。Verilog中用moduleVerilogHDL的建模实际上就是如何使用HDL语言对数字电路的两种基本要素的特性及相互之间的关系进行描述的过程。在数字电路设计中,数字电路可简单归纳为两种要素:线和器件。verilog中,模块声明由关键字module开始,关键字endmoduIe则必须出现在模块定义的结尾。每个模块必须具有一个模块名,由它惟一地标识这个模块。模块的端口列表则描述这个模块的输入和输出端口。Module<模块名>(模块端口列表)…………..<模块内容>…………….endmoduIe简单的例子(数据流方式)

module

HalfAdder(A,B,Sum,Carry);inputA,B;outputSum,Carry;

assign#2Sum=A^B;assign#5Carry=A&B;

endmoduleModule定义了一个模块或一个器件,对模块的描述是任意的,可以是行为描述、数据流描述或结构描述顶层模南块子模块1子模块2子模块3基本单滋元基本单元基本单元基本单元基本单熄元基本单浑元modu确let足op(A冒,B,及,C,礼D,…)百;Sec碰ond歪_1(轨……)铅;Sec惕ond萌_2(趋……)三;Seco难nd_3邀(……)牢;end是mod涝ulemodu蜂les兽econ根d_1(扶…);Thir特d_1(馒……);Thir要d_2(夏……);end侍mod特ulemod糕ule污se帐con辅d_2研(…)赤;Thi允rd_这3(…括…);Thir楚d_4(森……);end菜mod面ulemodu雪les奇econ优d_3(卷…);Thi刃rd_业5(…赌…);Thir盏d_6(疏……);end徐mod华ulemodu握leT凶hird炊_1(…局);…………数..end位mod屯ulemod讨ule琴Th蕉ird贼_2(腿…);………冰…..endm姓odul遗emod持ule抖Th巧ird百_3(毁…);………莫…..endm只odul克emod俭ule皮Th臭ird与_4(肢…);………棋…..end葬mod坐ulemod兔ule蛛Th懂ird自_5(灵…);………磁…..end壳mod谣ulemod替ule图Th链ird少_6(乌…);………许…..endm僚odul芽e例设计一提个4位二吨进制脉动像进位计数甚器T’触发器tff0qT’触发器tff1qT’触发器tff2qT’触发器tff2qq0q1q2q3clockresetD触发器D_FFqclockdresetqT’触发器4位二震进制脉鼓动进位起计数器困由4个律T‘触缓发器构乓成,而症很一个童T’触奔发器可幼由一个哲D触发代器和一长个非门施构成脉动进位计数器T’触发器tff0T’触发器tff1T’触发器tff2T’触发器tff3D_FF非门D_FF非门D_FF非门D_FF非门modu里lerip各ple复_ca位rry秩_co议unt垄er窜(q,则cl龄k,乳res辞et)蒸;outp块ut[3:0鸡]q;inp浮utclk,则res枪et;T_F描Ftff0模(q[0坡],cl淘k,re畏set)冤;T_F陵Ftff兰1(q委[1]投,q[逢0],织res尼et)找;T_F贺Ftff罚2(q商[2]厉,q[里1],演res疮et)肿;T_FFtff筛3(q歇[3]京,q[围2],挺res符et)涌;end孩mod伙uleT’触发器tff0qT’触发器tff1qT’触发器tff2qT’触发器tff2qq0q1q2q3clockresetD触发器D_FFqclockdresetqT’触发器mod舅uleT_F

温馨提示

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

评论

0/150

提交评论