摘要:字符串能够用在系统任务(诸如$display和$monitor等)中作为变量,字符串的值可以像数字一样储存在寄存器中,也可以像对数字一样对字符串进行赋值,比较和拼接。 用法: 1.一条字符串不能占源代码的多行; 2.字符串可以包含下列列表中的扩展字符; 3.诸如$display和$monitor等系
阅读全文
摘要:在Verilog中经常会遇到pullup、pulldown和assign (strength0, strength1),那么它们究竟有什么区别? 它们之间的区别主要是语法和驱动强度。 pullup、pulldown看做是门级原语,assign语句看做是RTL。 SystemVerilog接口不允许门
阅读全文
摘要:pullup、pulldown的用法: pullup或pulldown只对对当前无驱动的线wire才会有作用,若有驱动应该按照驱动信号来决定! 当线wire为z时,pullup或pulldonw才起作用! 也就是‘Z’可以变成‘1’或‘0’,而不是‘0’能变‘1’(‘1’变‘0’),否则就跟你设计想
阅读全文
摘要:$random系统函数提供了一个产生随机数的的方法,当函数被调用时返回一个32位的随机数,是一个带符号的整型数; $random的用法: $random % b 其中 b > 0, 产生一个范围在-b + 1 和 b - 1的随机数; reg [23:0] rand; rand = $random
阅读全文
摘要:所谓层次化的事件队列指的是用于调度仿真事件的不同的Verilog事件队列,在IEEE verilog标准中,层次化事件队列被看做一个概念模型。设计仿真工具的厂商如何来实现事件队列,关系到仿真器的效率,是技术秘诀。 在IEEE 1364-1995 Verilog标准的5.3节中定义了层次化事件队列在逻
阅读全文
摘要:event变量声明为: event var; event触发为:->var; 捕获触发为:@(var); 10个时间单位后reset_trigger事件被触发,捕获后将reset设置一个时钟周期再触发reset_done_trigger。之后再分别设置10个周期的随机信号给enable和reset。
阅读全文
摘要:verilog中的语句 赋值语句: 阻塞赋值语句(=)、非阻塞赋值语句(<=) 块语句 : 顺序块(begin...end)、并行块(fork...join) 条件语句: if...else语句、case语句 循环语句: forever语句 repeat语句、while语句、for语句 生成语句:
阅读全文
摘要:1. 连续赋值语句(Continuous Assignments) 连续赋值的主要特点: 1)语法上,有关键词“assign”来标识; 2)连续赋值语句不能出现在过程块中(initial/always); 3)连续赋值语句主要用来对组合逻辑进行建模以及线网数据间进行描述; 4)左侧被赋值的数据类型必
阅读全文
摘要:verilog中的task和function不同点如下: 1)函数只能与主模块共同用同一个仿真时间单位,而任务可以定义自己的仿真时间单位; 2)函数不能启动任务,而任务能启动其他函数和任务; 3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的输入变量; 4)函数返回一个值,而任务则不返回
阅读全文