verilog 复习考试总结

上传人:n**** 文档编号:78613196 上传时间:2019-02-14 格式:PDF 页数:11 大小:1.04MB
返回 下载 相关 举报
verilog 复习考试总结_第1页
第1页 / 共11页
verilog 复习考试总结_第2页
第2页 / 共11页
verilog 复习考试总结_第3页
第3页 / 共11页
verilog 复习考试总结_第4页
第4页 / 共11页
verilog 复习考试总结_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《verilog 复习考试总结》由会员分享,可在线阅读,更多相关《verilog 复习考试总结(11页珍藏版)》请在金锄头文库上搜索。

1、3 Verilog 1. Verilog HDL 是一种硬件描述语言硬件描述语言,用于从算法级算法级、RTL 级级、门级门级到开关级开关级的多种抽象设计层次抽象设计层次的数字系统建模数字系统建模。 行为级描述:行为级描述:数据结构和过程类似类似 C;用于描述算法级算法级和 RTL 级级的 Verilog 模型。 结构级描述:结构级描述:用于描述门级门级和开关级开关级电路;特点:支持门级延时门级延时信息和驱动能力驱动能力等的描述。 VHDL 侧重于系统级描述侧重于系统级描述,从而更多的为系统级系统级设计人员所采用; Verilog 侧重于电路级描述侧重于电路级描述,从而更多的为电路级电路级设计人

2、员所采用。 2. Verilog HDL 设计入门设计入门 模块(模块(module) 模块是 Verilog 的基本描述单位基本描述单位 模块的定义定义从关键词 module 开始开始,到关键词 endmodule 结束结束 每条 Verilog HDL 语句以分号“; ”作为结束语句以分号“; ”作为结束 模块的基本结构模块的基本结构 、模块、模块定义行定义行 以 module 开头开头 接着给出所定义模块的模块名模块名 括号内给出端口名列表端口名列表(端口名等价于硬件中的外接引脚外接引脚,模块通过这些端口与外界发生联系通过这些端口与外界发生联系) 以分号结束分号结束 、端口类型端口类型说

3、明说明 端口类型端口类型只有 input、output、inout 三种 、数据类型数据类型说明说明 支持的数据类型数据类型有连线类连线类(wire)和寄存器寄存器(reg)类两个大类 一位宽的一位宽的 wire 类可被缺省外类可被缺省外,其它凡将在后面的描述中出现的变量都应给出相应的数据类型说明在后面的描述中出现的变量都应给出相应的数据类型说明 、描述体部、描述体部 具体具体展开对模块的描述描述 、结束行、结束行 用关键词 endmodule 标志标志模块定义的结束结束 它的后面没有分号后面没有分号 行为描述与结构描述行为描述与结构描述 行为描述行为描述(Behavior)描述行为行为或功能

4、功能特性 结构描述结构描述(Structure)描述通过什么样的结构方式将不同的实体连接起来结构方式将不同的实体连接起来用以实现所要求的行为或功能行为或功能。 测试与仿真测试与仿真 测试平台(测试平台(Test Bench) :) :在输入端口加入测试信号,从输出端口检测其输出结果是否正确。 通常将需要测试的对象通常将需要测试的对象称之为 DUT(Device Under Test) 。 测试模块:测试模块:要调用 DUT;包含用于测试的激励信号源激励信号源;能够实施对输出信号的检测对输出信号的检测,并报告检测的结果报告检测的结果。 过程语句过程语句 Initial:只顺序顺序地执行一次执行一

5、次;没有触发条件没有触发条件。 Always: 当顺序执行到最后一条语句后执行到最后一条语句后,会自动返回自动返回到第一条语句重新开始执行重新开始执行,是一条没有穷尽的循环语句没有穷尽的循环语句 往往带有触发条件有触发条件 3. Verilog HDL 基础知识基础知识 基本词法定义基本词法定义 空白符空白符 空白符是以下几种几种字符与控制符的总称:字符与控制符的总称:空格、TAB 键、换行符、换页符。 空白符起分隔符的作用:空白符起分隔符的作用:允许允许在一行内写多条一行内写多条 Verilog HDL 语句语句 注释行注释行 单行注释:单行注释:以“/”开始到行末结束,不允许续行不允许续行

6、 多行注释:多行注释:以“/*” 开始,到“*/”结束,可以跨越多行跨越多行,但不允许嵌套不允许嵌套 注释行中的内容只是为了便于阅读理解注释行中的内容只是为了便于阅读理解 在必要的地方增加适当的注释说明,在 HDL 编程中尤为重要 有些操作控制命令以注释行的方式出现在有些操作控制命令以注释行的方式出现在 HDL 描述中描述中,它不影响不影响 HDL 的仿真的仿真,但其它工具可以识其它工具可以识 别这些控制命令别这些控制命令 四种逻辑状态四种逻辑状态 Verilog HDL 需要用数字或字符数字或字符去表达在数字电路中存储与传送存储与传送的逻辑状态。逻辑状态。 0 逻辑零、逻辑非、低电平逻辑零、

7、逻辑非、低电平 x 或 X 不确定的逻辑状态不确定的逻辑状态 1 逻辑逻辑 1、逻辑真、高电平、逻辑真、高电平 z 或 Z 高阻态高阻态 整数及其表示整数及其表示 整数可以表示成整数可以表示成:十进制、十六进制、八进制、二进制等 表示方法有两种:表示方法有两种: 直接由 09 的数字串组成的十进制数的数字串组成的十进制数 +/- 位宽位宽是指所要表示的整数用二进制展开时所需的二进制位的个数二进制展开时所需的二进制位的个数(bit 数) ,其值用十进制数表示值用十进制数表示 位宽位宽在表示中可以被缺省可以被缺省 基数符号基数符号 问号“?”是高阻态”是高阻态 z 的另一种表示 下划线“_”的引入

8、只是为了增加可读性只是为了增加可读性 在数值表示中,左边为最高有效位左边为最高有效位(MSB) ,右边为最低有效位右边为最低有效位(LSB) 在二进制表示二进制表示中,x, z 只代表相应位的逻辑状态只代表相应位的逻辑状态;在八进制表示八进制表示中,一位的一位的 x, z 代表的是三个二进制代表的是三个二进制 位都处于位都处于 x 或或 z 态态,在十六进制十六进制中则对应代表四个二进制位都处于代表四个二进制位都处于 x 或或 z 态态 对于带符号的整数带符号的整数,正、负号正、负号的表示应在最左边在最左边 基数表示实例基数表示实例 实数及其表示实数及其表示 实数可以用十进制数表示十进制数表示

9、,也可用指数表示指数表示。 在 verilog HDL 中, 实数可以参与的运算是受限制参与的运算是受限制 的的。 当实数被转换为整数被转换为整数时,是按四舍五入四舍五入的方式进 行的。 字符串字符串 定义:定义:为两个双引号“”之间的字符;字符串不 允许跨行。 可通过前导的控制键前导的控制键(反斜杠及百分号反斜杠及百分号)引入一些特殊字符引入一些特殊字符 取名规则取名规则 必须是由字母字母(az, AZ)或下划线开头下划线开头,长度小于小于 1024 字符字符的一串字符序列一串字符序列 后续部分后续部分可以是字母字母( az, AZ ) 、数字数字(09) 、下划线下划线、$ 还可以是反斜杠

10、“反斜杠“”开头”开头,并以空白符结尾以空白符结尾的任何字符序列任何字符序列。但反斜杠本身及空白符反斜杠本身及空白符都不属标识符不属标识符 组成部分 系统命令系统命令 以以$开头开头的标识符标识符用以代表系统命令以代表系统命令(系统任务系统任务与系统函数系统函数) $display $monitor $finish 关键词关键词 Verilog HDL 语言内部已经使用的词内部已经使用的词称为关键词或保留词关键词或保留词,应避免使用 所有的关键词都是小写关键词都是小写 always,and,assign,attribute,begin,buf,case,default,else 数据类型数据类

11、型 连线类型和寄存器类型连线类型和寄存器类型 驱动方式驱动方式(或赋值方式赋值方式)不同 保持方式保持方式不同 对应硬件实现硬件实现不同 wire 连线类型连线类型 对应硬件电路中硬件电路中的物理信号连接物理信号连接 驱动有两种方式驱动有两种方式: 在结构描述中把它连接到一个门或模块的输出端把它连接到一个门或模块的输出端 用连续赋值语句连续赋值语句 assign 对其进行赋值对其进行赋值 没有电荷保持作用没有电荷保持作用,当没有被驱动没有被驱动时,将处于高阻态处于高阻态 z 连线主要出现在出现在模块的结构描述中结构描述中,对应硬件电路中 物理信号连接。 在对连线进行描述时,必须用连线类型定义语

12、句进行说明用连线类型定义语句进行说明,当说明被缺省时被缺省时,表示的是位宽为位宽为 1bit 的 wire 型连线。Wire 是标准的,不附带其它逻辑功能的连线。 Tri 与与 wire 的功能是完全一致的完全一致的。 Wire 与与 wor 以及以及 wand 三者之间的差别差别体现在有多重驱动时有多重驱动时连线所具有的不同逻辑特性具有的不同逻辑特性 reg 寄存器类型寄存器类型 对应的是具有状态保持作用有状态保持作用的硬件电路元件, 如触发器、 锁存器等 驱动可以通过过程赋值语句实现过程赋值语句实现 过程赋值在接受下一次的过程赋值之前, 将保持原值不保持原值不 变变 当寄存器类型没有被赋值

13、前没有被赋值前,将处于不定态处于不定态 X 所有寄存器类的量寄存器类的量,都有“寄存”性,即在接受下一次赋值前接受下一次赋值前,将保持原值不变保持原值不变。 所有寄存器类都必须给出类型说明必须给出类型说明(无缺省状态) 。 寄存器类的量,必须通过过程赋值语过程赋值语句进行赋值。 Integer、real、time 都是纯数学的抽象描述纯数学的抽象描述,不对应于任何具体的硬件电路实现。 标量与矢量标量与矢量 线宽只有一条的连线,以及位数只有一位的寄存器称之为标量。 线宽大于一条的连线,或位数大于一位的寄存器称之为矢量。 矢量的说明矢量的说明:矢量的范围由括在方括号中的一对数字表示,中间一个冒号相

14、隔。形式为:msb:lsb。 参数定义语句参数定义语句 parameter 用于对延时延时、线宽线宽、寄存器位数寄存器位数等物理量物理量的定义 用一个文字参数文字参数来代替一个数字量代替一个数字量 优点优点:增加描述的可读性可读性;为以后的修改带来方便修改带来方便。 形式描述:参数定义表项形式描述:参数定义表项给出具体的各个参数与数字量之间所谓对应关系具体的各个参数与数字量之间所谓对应关系,相互间用逗号逗号“,”相隔”相隔 宏替换宏替换 define 宏替换的形式描述形式描述: define 宏替换是在编译时告知编译器,用宏替换定义中的文本内容来直接替代模块描述文件中出现的宏名用宏替换定义中的

15、文本内容来直接替代模块描述文件中出现的宏名。 一条宏定一条宏定义语句只能定义一个宏替换只能定义一个宏替换,且定义结束时无分号定义结束时无分号。 补充 宏替换定义本身以及用到宏替换的地方本身以及用到宏替换的地方必须有撇号“有撇号“”作开头”作开头 模拟时间定标模拟时间定标 对模拟器模拟器的时间单位时间单位及时间计算的精度时间计算的精度进行定标定标 定义:定义:timescale/ 计时单位计时单位与计时精度计时精度都由整数整数及相应的时间单位时间单位两部分组成 时间单位:时间单位:S、ms(毫秒) 、us(微秒) 、Ns(纳秒) 、 ps(微微秒) 、Fs(毫微微秒) 时间精度时间精度:延迟时间延迟时间的最小分辨率最小分辨率 计时单位必须大于等于必须大于等于精度单位 对 timescale 的定义必须在模块描述的外部进行必须在模块描述的外部进行 模拟器允许对不同模块定义不同的时标对不同模块定义不同的时标,但以最小的精度进行模拟计算以最小的精度进行模拟计算 运算符运算符 运算符的分类运算符的分类 单目运算符:单目运算符:只有一个操作数一个操作数,且运算符位于操作数的左边左边 双目运算符:双目运算符:有两个操作数,各位于运算符的两边两边 三目运算符:三目运算符:属于这

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

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