- 2
- 0
- 约5.01千字
- 约 32页
- 2021-09-17 发布于安徽
- 举报
EDA技术与Verilog HDL语言 第九章 实用建模技术 本章学习目标 描述过程连续赋值语句assign,deassign,force和release,解释它们在建模和调试时的重要性。 掌握怎样在模块调用时用defparam语句重新定义参数值。 解释条件编译和Verilog描述部件的执行。 认识和理解系统任务,如文件输出、显示层次、选通显示(strobing)、随机数生成、存储器初始化和值变转储等系统任务。 9.1 过程连续赋值— —assign/deassign 关键字assign和deassign用来表示第一类过程连续赋值语句。过程连续赋值语句的左边只能是一个寄存器或一个拼接的寄存器组,不能是线网类型变量的部分位选择、位选择或寄存器组。过程连续赋值语句可以改写(覆盖)常用的过程赋值的结果。过程连续赋值一般只用于受控制的一段时间内。 我们在第6章中曾经建立过一个具有异步复位端,下降沿触发的D触发器的模型,这里我们改用assign和deassign语句重建一个。 曾经在第六章中的建立的模型 采用assign和deassign语句新建立的模型 9.1 过程连续赋值— —force/release 关键字force和release用来表示过程连续赋值语句的第二种形式。它们既可以用来改写(覆盖)寄存器上的赋值也可以改写(覆盖)线网上的赋值。force和release语句的典型应用是在交互式调试过程中。此时,某些寄存器或线网被强制赋值,并且提示对其他寄存器和线网的影响。 作用在线网上的force和release 9.1 过程连续赋值— —force/release(续) 作用在寄存器上的force和release 建议不要在设计模块内部使用force和release语句,它们应当只出现在激励中,或仅作为调试语句。 9.2 改写(覆盖)参数— —defparam语句 在设计中,可以用关键字defparam在任意模块调用中改变参数值。如下: 输出结果: 9.2 改写(覆盖)参数— —模块实例的参数值 defparam结构现在被认为是一种糟糕的编码风格,在Verilog HDL代码中我们一般使用替代形式。比如在调用模块时改写(覆盖)其原来定义的参数值。我们依然以defparam中的例子,对它做一点修改,在模块调用时将新参数值传入模块。仿真输出将与用defparam语句所得到的输出一样。 9.2 改写(覆盖)参数— —模块实例的参数值(续) 9.3 条件编译和执行 Verilog代码中的一部分可能适用于某个编译环境,但不适用于另一个环境。如果设计者不想为两个环境创建不同版本的Verilog设计,还有另外一种方法,设计者在代码中指定其中某一部分代码只有在设置了特定的标志后才能被编译。这就是所谓的条件编译。 设计者也可能希望在程序的运行中仅当设置了某个标志后才能执行Verilog设计的某些部分。这就是所谓的条件执行。 下面我们分别进行介绍。 9.3.1 条件编译 条件编译可用编译指令`ifdef,`ifndef,`else,`elsif和`endif实现。 例1: 9.3.1 条件编译(续) 例2: 9.3.2 条件执行 条件执行标志允许设计者在运行时控制语句执行的流程。所有语句都被编译,但是有条件地执行它们。条件执行标志仅能用于行为语句。系统任务关键字$test$plusargs用于条件执行。如下例: 9.3.2 条件执行(续) 系统任务关键字$value$plusargs用于测试调用选项的参数值。如果没找到匹配的调用选项,那么$value$plusargs返回0。如果找到了匹配的调用选项,那么$value$plusargs返回非0值。 9.4 时间尺度 用法:ˋtimescale reference_time_unit / time_precision 功能:该指令为模块指定参考时间单位 reference_time_unit(参考时间单位)指定时间和延迟的测量单位。time_precision(时间精度)指定仿真过程中延迟值进位取整的精度。 只有1,10和100才是合法的说明时间单位和时间精度的整数。 用法举例 9.4 时间尺度 仿真输出结果: 9.5 常用的系统任务 这里讨论Verilog语言中的一些常用系统任务,它们各自适用于不同的场合。主要包括以下几种: 文件输出 显示层次 选通显示(strobing) 随机数生成 内存初始化 值变转储 9.5.1 文件输出— —打开文件 $fopen 用法1:$fopen(“name_of_file”) ; 用法2:file_handle = $fopen(“name_of_file”) ; 用法举例
您可能关注的文档
- 《Verilog HDL数字设计与综合(第二版)》教学课件—第1章.综述.ppt
- 《Verilog HDL数字设计与综合(第二版)》教学课件—第10章.时序和延迟.ppt
- 《Verilog HDL数字设计与综合(第二版)》教学课件—第14章.使用Verilog HDL进行逻辑综合.ppt
- 《Visual C 实用教程(第6版)》教学课件—第1章 基本C++语言.pptx
- 《Visual C 实用教程(第6版)》教学课件—第2章 C++面向对象程序设计.pptx
- 《Visual C 实用教程(第6版)》教学课件—第3章 MFC基本应用程序的建立.pptx
- 《Visual C 实用教程(第6版)》教学课件—第4章 窗口和对话框.pptx
- 《Visual C 实用教程(第6版)》教学课件—第5章 常用控件.pptx
- 《Visual C 实用教程(第6版)》教学课件—第6章 基本界面元素.pptx
- 《Visual C 实用教程(第6版)》教学课件—第7章 文档和视图.pptx
原创力文档

文档评论(0)