版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2HDL语言简介语言简介Verilog 中的模块(中的模块(Module)Verilog语言中常用语句语言中常用语句Verilog语言中阻塞和非阻塞赋值语言中阻塞和非阻塞赋值Verilog语言中常见的错误语言中常见的错误Verilog的的语言要素语言要素Verilog语言的语言的4大法宝大法宝3456Verilog语言中常用语句语言中常用语句Verilog语言中阻塞和非阻塞赋值语言中阻塞和非阻塞赋值Verilog语言中常见的错误语言中常见的错误Verilog的的语言要素语言要素Verilog语言的语言的4大法宝大法宝Verilog 中的模块(中的模块(Module)7 模块是Verilog 的
2、基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。 整个逻辑设计就是通过模块之间的例化(instantiation)来构成一个整体的。 逻辑设计的思想体现了自顶向下的设计方法系统级的顶层模块模块A模块C模块B模块A1模块C2模块C1模块A28 要求:每个文件只包含一个模块 。模块名和文件名保持一致。模块名实例名端口信号映射关系9module module_name (port_list) ; Declarations : reg, wire, parameter, input, output, inout, function, task, . . . Statements
3、 : Initial statement Always statement Module instantiation Gate instantiation UDP instantiation Continuous assignmentendmodule模块的结构需按上面的顺序进行,声明区用来对信号方向、信号数据类型、函数、任务、参数等进行描述。语句区用来对功能进行描述如:器件调用 (Module instantiation )等。10Verilog语言中常用语句语言中常用语句Verilog语言中阻塞和非阻塞赋值语言中阻塞和非阻塞赋值Verilog语言中常见的错误语言中常见的错误Verilog语
4、言的语言的4大法宝大法宝Verilog的语言要素的语言要素11Verilog的语言要素的语言要素12 标识符( identifier)用于定义模块名、端口名、信号名等。 Verilog HDL 中的标识符( identifier )可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写敏感的。以下是标识符的几个例子: Verilog HDL 定义了一系列保留字,叫做关键词,附录A 列出了语言中的所有保留字。注意只有小写的关键词才是保留字。例如,标识符always (这是个关键词)与标识符ALWAYS(非关键词)是不同的。13
5、 两种注释的方式: 以“/*”符号开始,“*/” 结束,在两个符号之间的语句都是注释语句,因此可扩展到多行。如: /* statement1 , statement2, . . statementn */ 以上n个语句都是注释语句。 是以 / 开头的语句,它表示以 / 开始到本行结束都属于注释语句。14 自由的书写格式: Verilog HDL的书写格式是自由的,即一条语句可多行书写;一行可写多个语句。白空(新行、制表符、空格)没有特殊意义。 如: input A;input B;与 input A; input B; 功能是一样的,但是这方面公司有严格的书写规范。15 以$字符开始的标识符表
6、示系统任务。 任务提供了一种封装行为的机制。这种机制可在设计的不同部分被调用。任务可以返回0个或多个值。 函数在0时刻执行,即不允许延迟。 $d i s p l a y (Hi, you have reached LT today); /* $d i s p l a y 系统任务在新的一行中显示。* / $t i m e / /该系统任务返回当前的模拟时间。16 以(反引号)开始的某些标识符是编译器指令。 在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令。 完整的标准编译器指令如下: define, undef ifd
7、ef, else, endif default_nettype include resetall timescale unconnected_drive, nounconnected_drive celldefine, endcelldefine17 四种基本的值类型: 0:逻辑0或“假”; 1:逻辑1或“真”; X:未知值; Z:高阻。注意这四种值的解释都内置于语言中。如一个为z 的值总是意味着高阻抗,一个为0 的值通常是指逻辑0 。18 两种数据类型:线网类型(net type) 和 寄存器类型(reg type)。 线网类型代表的是物理连接线,因此它不存贮逻辑值。必须由器件所驱动。ass
8、ign赋值语句必须用线网类型。 定义:wire a; assign A = B C; 当一个wire 类型的信号没有被驱动时,缺省值为Z(高阻)。 信号没有定义数据类型时,缺省为 wire 类型。 寄存器类型通常用于对存储单元的描述,如D型触发器、ROM等。存储器类型的信号当在某种触发机制下分配了一个值,在分配下一个值之时保留原值。但必须注意的是,reg 类型的变量,不一定是存储单元。 注意在always,initial 语句中必须用reg 类型的变量。定义: reg msb: lsb reg1, reg2, . . . r e g N;19 参数是一个常量。参数经常用于定义时延和变量的宽度。
9、使用参数说明的参数只被赋值一次。参数说明形式如下: 下面为具体实例: p a r a m e t e r L I N E L E N G T H = 132; p a r a m e t e r A L L _ X _ S = 16bx;20 三种常量:整型、实型、字符串型。 整型数可以按如下两种方式书写: 1) 简单的十进制数格式 32 十进制数32 2) 基数格式: size base value size 定义以位计的常量的位长;base 为o 或O(表示八进制),b 或B(表示二进制),d 或D (表示十进制),h 或H (表示十六进制)之一;value 是基于base 的值的数字序列
10、。值x 和z 以及十六进制中的a 到f 不区分大小写。如: 3b101 1h6 字符串是双引号内的字符序列。字符串不能分成多行书写。如: INTERNAL ERROR REACHEDHERE 21 算术运算符 加法(二元运算符):“+”; 减法 (二元运算符): “-”; 乘法(二元运算符):“*”; 关系运算符有:(大于)=(不小于)=(不大于)= = (逻辑相等)!= (逻辑不等)22 按位逻辑运算符 条件运算符 cond_expr ? expr1 : expr2 连接运算符 连接操作:将小表达式合并形成大表达式或者说总线的操作。形式如下: expr1, expr2, . . .,expr
11、N 例如: wire 7:0 Dbus; assign Dbus 7:4 = Dbus 0, Dbus 1, Dbus2, Dbus 3 ;23Verilog语言中阻塞和非阻塞赋值语言中阻塞和非阻塞赋值Verilog语言中常见的错误语言中常见的错误Verilog语言的语言的4大法宝大法宝Verilog语言中常用语句语言中常用语句24 If语句25当比较向量时,verilog将对位数小的向量做 0 扩展以使它们的长度相匹配,它的自动扩展为隐式的。建议采用显示扩展。每一个If 都应有一个else 和它相对应,防止产生latch;if语句的嵌套时,应注意每个If 条件的优先级;建议采用于 if (v
12、ariable = = 1),不要采用If (variable) ,以增强程序的可读性。26 Case语句27 所有的Case 应该有一个default case ,以免生成不必要的锁存器。允许空语句: Default : ; 避免使用casex。28 case语句通常综合成一级多路复用器,而if-then-else则综合成优先编码的串接的多个多路复用器。 case 语句仿真要比条件赋值语句快,因为优先编码器的结构仅在信号的到达有先后时使用。 if语句有优先级,case语句没有。29 两者综合实现后结果:If语句 case语句3031initial waitrepeat whileforeve
13、r named eventsfork/join deassignforce/releaseprocedural assignmentsoperators : case equality and inequality = != 另外for语句虽然可以综合,但也不建议使用32Verilog语言中阻塞和非阻塞赋值语言中阻塞和非阻塞赋值Verilog语言中常见的错误语言中常见的错误Verilog语言的语言的4大法宝大法宝33 Wire-数据类型:Verilog结构化元件间的物理连线。 Reg -数据类型:寄存器类型 Assign-连续赋值语句 Always-Always语句只要条件满足始终重复执行Co
14、mbLogicDQQSETCL RDQQSETCL RDQQSETCL RDQQSETCL RDQQSETCL RExternalInput34 连续赋值语句的执行是:只要右边表达式任一个变量有变化,表达式立即被计算,计算的结果立即赋给左边信号。 连续赋值语句之间是并行语句,因此与位置顺序无关。35 Verilog HDL 有两种过程赋值语句: initial 和 always 语句,实现行为建模。这两种语句之间的执行是并行的,即语句的执行与位置顺序无关。这两种语句通常与语句块(begin .end)相结合,则语句块中的执行是按顺序执行的。 initial 语句只执行一次,即在设计被开始模拟执
15、行时开始(0时刻)。通常只用在对设计进行仿真的测试文件中,用于对一些信号进行初始化和产生特定的信号波形。 always 语句与initial 语句相反,是被重复执行,执行机制是通过对一个称为敏感变量表的事件驱动来实现的36 assign、always例子:37 在assign语句中赋值的变量要定义为wire。 在always块中被赋值的变量要定义为reg。 reg变量并不一定被综合为寄存器。always块也可以用来描述组合逻辑。Reg 变量wire 变量38 整个逻辑设计中的Module,以及Module中的Always语句块、Assign语句都是并行动作的。 因此Module中的Always
16、语句块、 Assign语句、例化Module语句书写位置是没有要求的。39Verilog语言中常见的错误语言中常见的错误Verilog语言中阻塞和非阻塞赋值语言中阻塞和非阻塞赋值40 阻塞赋值赋值操作符是“=”的过程赋值是阻塞性过程赋值。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。T1赋值首先发生,计算T1;接着执行第二条语句, T2被赋值;然后执行第三条语句, T3被赋值;依此类推。41 非阻塞赋值在非阻塞性过程赋值中,使用赋值符号“ =”。当非阻塞性过程赋值被执行时,计算右端表达式,右端值被赋于左端目标,并继续执行下一条语句。非阻塞语句并行执行第一条语句的
17、执行使Clr 在第5个时间单位被赋于值1;第二条语句的执行使Clr在第4个时间单位被赋值为0 (从0时刻开始的第4个时间单位);最终,第3条语句的执行使Clr在第10个时间单位被赋值为0 (从0时刻开始的第10个时间单位)。注意3条语句都是在0时刻执行的。此时,非阻塞性赋值执行次序变得彼此不相关。42 原则1:对时序逻辑建模时,使用非阻塞赋值。 原则2:对锁存器建模时,使用非阻塞赋值。 原则3:用always块对组合逻辑建模时,使用阻塞赋值。 原则4:在同一always块中对时序逻辑和组合逻辑同时建模时,使用非阻塞赋值。 原则5:在同一always块中,不要混合使用阻塞和非阻塞赋值。 原则6:不要用多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度网络安全防护服务合同2篇
- 2025版果园租赁与农业观光旅游合作协议2篇
- 二零二五年度屋顶防水隔热彩钢瓦安装服务合同样本2篇
- 2025年度绿色建筑PPP项目合作协议2篇
- 二零二五年度洗衣店加盟商合同范本3篇
- 脚手架安全监理细则模版(2篇)
- 统计行政指导工作方案模版(2篇)
- 低压配电室操作规程(2篇)
- 二零二五年度新型环保建筑材料采购销售合同范本3篇
- 二零二五年度昆明公租房电子合同租赁合同签订与租赁双方责任划分3篇
- 法理学课件马工程
- 《玉米种植技术》课件
- DB51-T 5038-2018 四川省地面工程施工工艺标准
- 第47届世界技能大赛江苏省选拔赛计算机软件测试项目技术工作文件
- 2023年湖北省公务员录用考试《行测》答案解析
- M200a电路分析(电源、蓝牙、FM)
- 2024-2030年全球及中国洞察引擎行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 建筑工程施工图设计文件审查办法
- 置业顾问考核方案
- 吉林市2024-2025学年度高三第一次模拟测试 (一模)数学试卷(含答案解析)
- 自考《英语二》高等教育自学考试试题与参考答案(2024年)
评论
0/150
提交评论