新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > 零基础学FPGA(五)Verilog语法基基础基础(下)

零基础学FPGA(五)Verilog语法基基础基础(下)

作者:时间:2014-12-31来源:网络收藏

  (4)系统任务$stop

本文引用地址:http://www.eepw.com.cn/article/267553.htm

  $stop任务作用是把EDA工具置成暂停模式,在仿真环境下给出一个交互式的命令操作符,将控制权交给用户。这个任务可以带有参数表达式,根据参数值(0、1、2)的不同,输出不同的信息,参数值越大,输出信息越多。

  (5)系统任务$random

  这个系统函数提供了一个产生随机数的手段,当函数被占用时返回一个32位的随机数,它是一个带符号的整形数。

  下面是一个产生随机数的例子

  reg[23:0] rand;

  rand=$random %60;

  上面的例子产生一个-59到59之间的随机数,所以$random的用法是产生一个(-b+1)到(b-1)之间的随机数。

  下面的例子通过并位产生一个值在0—59之间的随机数

  reg[23:0 rand];

  rand = {$random} %60;

  利用这个系统函数可以产生随机脉冲序列或宽度随机的脉冲序列,用于电路的测试。

  下面是个产生随机脉冲序列的例子

  

360桌面截图20140417132822.jpg

 

  

360桌面截图20140417133014.jpg

 

  (6)关于编译预处理

  编译预处理这部分和C语言差不多,主要用到的是`define、`include、和时间尺度`timescale

  `define 就是宏定义,在C语言了用的也比较多,在verilog中灵活的使用宏定义可以增加程序的可读性,又方便修改。例如在声明一个8位寄存器时用宏定义

  `define WINDOWS 8

  module

  reg [1:`WINDOWS] date;

  ……

  习惯上一般宏定义的内容用大写字母表示,这里的WINDOWS就代表数字8,在下面的程序中调用WINDOWS时加个 `,表示调用,这样宏定义的好处就是,在大的程序中如果想改变寄存器的大小,可以直接改数字8为16,这样,所有的WINDOWS都变成了16,这样改一个就可以改变所有的,给程序员带来了方便。

  对于`include,C语言里用的比较多这里就不在多提,主要是模块化编程思想的应用,这个很重要,练好模块化编程,可以大大提高程序的可读性和可移植性,也使修改程序变得更加方便。

  对于`timescale,就是一个时间尺度,C语言里面没有,这里说一下。

  `timescale 包括两部分,一部分是时间单位,一部分是时间精度,下面举个例子

  

360桌面截图20140417142814.jpg

 

  在这个例子中,时间单位是10ns,时间精度是1ns,这里d=1.55,也就是说d等于1.55乘10纳秒,也就是15.5纳秒,再看时间精度是一纳秒,四舍五入就是16纳秒,所以在16纳秒时,set置零,32纳秒时set置一。

  小结

  (1)、在多模块调试的情况下,$monitor需配合$monitoron和$monitoroff来使用。

  (2)、$monitor和$diplay的区别在于$monitor是连续监视数据的变化,因而往往只要在测试模块的initial块中调用一次就可以监控被测模块中所有感兴趣的信号不需要,也不能在always块中调用$monitor.

  (3)、$time常在$monitor中作时间标记

  (4)、$stop 和 $finish 常用在测试模块的initial块中,配合时间延迟用来控制仿真的持续时间。

  (5)、$random在编写程序是非常有用的,可以用来产生边沿不稳定的波形和随机出现的脉冲。正确的使用它能有效的发现设计中出现的问题。

  (6)、$readman在编写测试程序时很有用,可以用来生成给定的复杂数据流。复杂数据可以用C语言产生,存在文件中。用$readman取出存入存储器,再按节拍输出这在验证算法逻辑电路中特别有用。

  (7)、在用`timescale时要注意当多个带不同`timescale定义的模块包含在一起时,只有最后一个才起作用,所以属于一个项目,但`timescale定义不同的多个模块最好分开编译,以免把时间单位搞混。

  (8)、宏定义字符串和include引用时,不要忘记用“`”这个标号。

  语法就到这里吧,谢谢大家!

fpga相关文章:fpga是什么


c语言相关文章:c语言教程



上一页 1 2 下一页

关键词: FPGA Verilog

评论


相关推荐

技术专区

关闭