Verilog逻辑仿真(1).ppt_第1页
Verilog逻辑仿真(1).ppt_第2页
Verilog逻辑仿真(1).ppt_第3页
Verilog逻辑仿真(1).ppt_第4页
Verilog逻辑仿真(1).ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、华中师范大学Verilog教程,有哪些硬件描述语言?他们的特点是什么?VHDL比VerilogHDL早几年成为EEE标准。-语法/结构严格,因此编写的模块风格清晰;-更适合更多设计师完成的超大型项目(百万门以上)。Verilog概述,什么是Verilog HDL?硬件描述语言(Verilog HDL)是一种硬件描述语言,用于在从算法级、门级到开关级的各种抽象设计级对数字系统进行建模。Verilog在VLSI设计过程中的地位,数字电路设计人员使用Verilog HDL来描述他们的设计思想,然后使用EDA工具进行仿真和综合,最后使用ASIC或FPGA来实现他们的功能,Verilog和VHDL,目前

2、,设计人员使用Verilog和VHDL在美国:verilog 3360 60%,VHDL 3360 40%台湾:Verilog : 50%,VHDL 3360 50%,Verilog历史,最初由Gateway设计自动化公司开发(后被Cadence收购)1995年,IEEE制定了Verilog HDL标准,即IEEE STD 1364-1995,Verilog HDL的发展历史,以及它们的建模能力的比较。Verilog和VHDL,它们之间的区别:VHDL侧重于系统级的描述,这更被系统级的设计者所采用。Verilog专注于电路级描述,这是电路级设计者更喜欢的。有哪些种类的硬件描述语言?他们的特点是

3、什么?verilog HDL-支持更多第三方工具-语法结构比VHDL简单-比VHDL更容易学习-模拟工具更好-测试激励模块更容易编写。Verilog HDL和C语言,虽然Verilog的一些语法与C语言相似,但有本质的区别。Verilog是一种硬件语言。最后,为了生成实际的硬件电路或模拟硬件电路,C语言是一种控制硬件实现某些功能的软件语言。使用Verilog编程时,请始终记住Verilog是一种硬件语言,请始终将Verilog与硬件电路相匹配。系统控制器和系统验证逻辑:面向片上系统。Verilog HDL的设计过程,一个系统的自顶向下设计,系统首先由总设计师(Spec)描述,系统被分成几个模块

4、,并编写模块模型(一般行为级)。在模拟验证之后,这些模块被分配给下一层的设计者,他们完成模块的具体设计,并且主设计者负责每个模块的接口定义。Verilog HDL设计的入口和出口,Verilog HDL设计的入口系统描述(Spec),Verilog HDL设计的出口函数是正确的,优化的Verilog描述文件模拟了时序波形,语法详细解释了Verilog语法的要点。目标:理解Verilog语言的一些重要规定,学会了解一些相关的重要语言符号,掌握如何在Verilog中指定时间单位,并详细解释Verilog和C在语法上的主要区别。Verilog有许多与C语言一致的语法规则。但它从根本上不同于C语言:-

5、并行性-块的含义:初始块和总是块是两个赋值语句:阻塞赋值“=”非阻塞赋值“=”。语法详细解释了整数和实常数。Verilog语言中的常量可以是整数或实数。整数可以表示数字,也可以不表示数字。表示方法:数字的数量表示该数字是用二进制数字表示的。基数可以是二进制数、八位数、十位数或十六位数。该值可以是所选基数的任何合法值,包括不定值X位数和高电阻值Z.例如,64hff01 8b1101_0001 h83a的实数可以用十进制或科学浮点数表示,如32e-4(0.0032)4.1 E3(4100)。语法详细解释了字符串。在Verilog语言中,字符串通常用来表示要在命令中显示的信息。用 括起来的一行字符串

6、被用 n 代替,这与C语言是一致的。您可以使用c语言中的各种格式控制器,如t,以及c语言中的各种数字类型控制器,如:%b(二进制)、%o(八进制)、%d(十进制)、%h(十六进制)、%t(时间类型)、%标识符必须以英文字母(a-z、A-Z)开头,或以跨线字符(_)开头。它可以包含数字、$符号和较低的水平线符号。标识符最多可包含1023个字符。模块名、端口名和实例名是标识符。Verilog语言是区分大小写的,所以sel和SEL是两个不同的标识符。语法详细说明合法和非法标识符,合法:shift_reg_a busa_index bus263,非法:34net /不能以数字a*b_net /开头,不

7、能包含非字母符号* n263 /不能包含非字母符号,Verilog区分大小写。所有Verilog关键字都是小写的。语法详细解释了特殊标识符,特殊标识符是以 符号开始,以空格符号结束的标识符。它可以包含任何可打印的ASCII字符。但是,“”和空格不是标识符的一部分。特殊标识符通常是由RTL级源代码生成的网表结构的Verilog语句中的标识符或由合成器自动合成的电路图式设计输入。示例:# sel,总线索引,a,b,1,/分层模块中的标识名,语法详细解释了系统任务和功能,而$ $符号表示Verilog的系统任务和功能。常用的系统任务和功能如下:$time /查找当前模拟时间

8、$display、$monitor /display和监视信号值的变化$stop /暂停模拟$finish /结束模拟。/每当A或B的值改变时,系统任务显示当前模拟时间,并分别以二进制和十六进制显示信号A和B的值。语法详细解释了特殊符号“#”。特殊符号“#”通常用于表示延迟:它表示流程分配语句中的延迟。示例:初始开始# 10 rst=1;# 50 rst=0;当被门级实例引用时,End表示延迟。示例:不是#1不是1(nsel,sel);和#2和2(a1,a,nsel);当引用模块实例时,这意味着传递参数并引入参数类型变量。语法详细解释了编译指南语句。编译指南语句从主键盘左上角的小写键“”开始,

9、指导模拟编译器在编译过程中进行一些特殊处理。编译指南语句始终有效。在resetall编译指南语句被取消或重写之前,所有设置的编译指南都将恢复到默认状态。常用的编译指南是:定义包含时间刻度使用lib全部重置.语法详细解释了编译指南语句,使用define编译指南可以提供简单的文本替换功能。合理使用定义可以提高程序的可读性。例如,定义on 1b1定义off 1b0定义and_delay #3可以使用有意义的单词来表示程序中无意义的数字,这提高了程序的可读性。在程序中,开、关和_ delay可分别用来表示1、0和# 3。语法详细解释了编译指南语句,并使用include来编译指南,它可以包含由它指定的整

10、个文件,并在编译期间一起处理它。示例:包括“全局”。v“包括”零件/计数器。v 包括././library/mux。v 合理使用include可以使程序简洁、清晰、连贯并易于检查错误。语法详细解释了编译指南语句。时间刻度用于解释程序中的时间单位和模拟精度。例如:时间刻度1ns/100ps时间刻度语句必须放在模块边界的前面。示例:时间刻度1 ns/100 ps模块mux2 _ 1(输出、a、b、sel);不是#1不是1(nsel,sel);和#2和1(a1,a,nsel);Endmodule使精度尽可能接近时间单位,只要它满足设计的实际需要。示例:在上面的示例中,所有时间单位都是1ns的整数倍,

11、语法详细解释了编译指南语句。模拟步长,即模拟单位(STU),由所有参与模拟模块中的时标所指定的最高精度(即最短时间)决定:(STU=100fs)示例:时标1ns/10ps模块M1(。);不是#1.23不是1(nsel,sel);/有12,300个stu(100 fs)末端模块时间刻度100 ns/1 ns模块m2()。)in/1.23 ns;不是#1.23不是1(nsel,sel);/有1230000个stu(100 fs)末端模块时间刻度1ps/100 fs模块m3()。)in/123 ns;不是#1.23不是1(nsel,sel);/在/1.23 ps中有12个stu (100 fs)端模

12、块。语法详细解释了编译指南语句。时间单位:fs(呼叫秒)飞秒3360 1.0E-15秒ps(皮秒)皮秒3360 1.0E-12秒ns(纳秒)非秒3360 1.0e-9秒us(微秒)微秒3360 1.0e-6秒ms(毫秒3360 1.0E-3秒s(秒)秒3360 1.0秒,语法详细解释了编译指南语句,而uselib编译指南语句用于定义模拟器将在哪里找到它将一直有效,直到另一个uselib或resetall语句的定义比其他配置库搜索路径的命令选项更有效。如果模拟器在由uselib定义的位置找不到设备库,它将不会转向由编译命令行-v和-y选项指定的设备库。语法详细解释了编译指南语句,并使用了以下语法

13、:设备库1的位置设备库2的位置。上面的设备库位置可以用以下两种方式表示:1)文件=库文件名的路径2)目录=库目录名的路径libext=。文件扩展名,例如:uselibdir=/lib/fast _ lib/uselibdir=/lib/TTL _ lib/libext=。vfile=/Libs/TTL_U/udp.lib,语法详细解释了Verilog的四个逻辑值,0,低,假,逻辑低,地,VSS,负插入,1,高,真,逻辑高,电源,VDD,正插入,X,不确定性:逻辑冲突不能确定其逻辑值,HiZ,高阻抗,三态Verilog有三种主要数据类型:网络代表设备之间的物理连接,称为网络连接类型寄存器代表抽象

14、存储单元,称为寄存器/变量类型参数代表运行时常数,称为参数类型,语法驱动端信号的变化将立即传输到输出端的连接。例如,在右图中,selb的改变将自动并立即影响or门的输出。net,语法详细解释了主要的数据类型和net类型变量的类型:当为不同进程的基本组件构建库模型时,通常需要使用不同的连接类型来对应它们,以便它们的行为与实际设备一致。常见的有以下几种。功能线类型,tri对应于标准互连线(默认)电源1,电源2对应于电源线或地线wor,trior对应于具有多个驱动源的线路或逻辑连接棒,tri对应于具有多个驱动源的线路和逻辑连接trireg对应于具有用于临时存储电平的电容器的连接tri1,tri0对应于需要上拉或下拉的连接。如果连接类型没有明确说明,应参考线类型。语法详细解释了主要的数据类型。寄存器类型变量可以保持它的值,直到它被赋予一个新值。寄存器变量通常用于行为建模,以生成测试激励信号。行为语句结构通常用于给寄存器类型的变量赋值。语法详细解释了主要的数据类型。寄存器类型变量有四种数据类型:类型函数。reg无符号整数变量,您可以选择不同的位宽。

温馨提示

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

评论

0/150

提交评论