随笔分类 - Verilog
摘要:表达式的位宽和符号 计算表达式的步骤 计算表达式的步骤如下 基于表达式位长确定的规则,确定表达式的位长。 基于表达式符号确定的规则,确定表达式的符号。 把表达式( 或者self-determined subexpression ) 的类型和位长向下传播到表达式的上下文决定( context-dete
阅读全文
摘要:时序模型 分层事件列解释了事件调度运行的顺序和策略,但是它没有很好的解释仿真器是如何处理语句中的时序控制部分,所以需要学习时序模型。 仿真器的事件推进模型是时序模型,它反映了仿真时间如何推进以及事件如何调度。 敏感表:是仿真模型的输入表,它由接受新值的元素组成,当输入发生变化时,它能显示哪些输入的变
阅读全文
摘要:阻塞赋值与非阻塞赋值概念 阻塞赋值和非阻塞赋值都属于过程赋值,所谓过程赋值语句就是只能在initial 和always 语句块中的复制语句。赋值对象只能是寄存器变量类型。右边的表达式可以是任意操作符的表达式。 阻塞赋值 阻塞赋值的语法如下 寄存器变量 = 表达式; 所谓阻塞赋值具有两层含义: 右边表
阅读全文
摘要:分层事件队列 当我们在谈到非阻塞赋值时都会说非阻塞赋值不对LHS立刻进行赋值,它在time-step的最后进行赋值。但是time-step的最后又是什么时候?就需要讨论Verilog的分层事件队列。 Verilog描述了电路的行为,是并行进行的,在仿真的时候我们把每一条语句每一个代码块都看作并行执行
阅读全文
摘要:task 和 function 说明语句分别用来定义任务和函数,利用任务和函数可以把函数模块分成许多小的任务和函数便于理解和调试。任务和函数往往还是大的程序模块在不同地点多次用到的相同的程序段。输入、输出和总线信号的数据可以传入、传出任务和函数。 task 如果传给任务的变量和任务完成后接受结果的变
阅读全文
摘要:##生成块 生成块语句可以动态的生成Verilog代码。 编写代码时必须在代码中说明生成的实例范围,关键字generate-endgenerate用来指定该范围。 可以允许出现在生成块中的 实例 Verilog允许生成实例,生成实例可以是以下的一个或多个类型: 模块 用户定义原语 门级原语 连续赋值
阅读全文

浙公网安备 33010602011771号