摘要:
ABOUT ME 阅读全文
摘要:
亚稳态 FPGA 等数字设备中的所有寄存器都定义了信号时序要求 允许每个寄存器在其输入端正确捕获数据并产生输出信号。为确保可靠操作,寄存器的输入必须在时钟边沿之前的最短时间(建立时间 setup time 或 \(t_{su}\))和时钟边沿之后的最短时间(保持时间 hold time 或 \(t_ 阅读全文
摘要:
异步FIFO 异步FIFO用一种时钟写入数据,而用另外一种时钟读出数据。读写指针的变化动作由不同的时钟产生。因此,对FIFO空或满的判断是跨时钟域的。如何根据异步的指针信号产生正确的空、满标志,是异步FIFO设计成败的关键。 异步FIFO端口 FIFO 的宽度:即 FIFO一次读写操作的数据位; F 阅读全文
摘要:
同步FIFO原理 FIFO FIFO (First-In-First-Out) 是一种先进先出的数据交互方式,在数字ASIC设计中常常被使用。 FIFO 与普通存储器 RAM 的区别是没有外部读写地址线,使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加 1 阅读全文
摘要:
异步信号与同步信号 同步信号 频率相同,相位相同的两个信号 频率相同,相位差一定的两个信号 不同频率的两个信号也可能是同步的,比如分频出来的两个信号 异步信号 频率不同的两个信号 频率相同但相位差不定的两个信号 跨时钟域就是要解决信号从异步信号之间传输的问题。 亚稳态 前面我们提到,在跨时钟域时,由 阅读全文
摘要:
门控时钟(ICG) 使用门控时钟的原因 芯片功耗组成中,大部分是由时钟树消耗掉的。因为这些时钟树在系统中具有最高的切换频率,而且有很多时钟buffer,并且为了最小化时钟延时,它们通常具有很高的驱动强度。此外,即使输入和输出保持不变,接收时钟的触发器也会消耗一定的功耗。而且这些功耗主要是动态功耗。 阅读全文
摘要:
关于格雷码的一些事 阅读全文
摘要:
表达式的位宽和符号 计算表达式的步骤 计算表达式的步骤如下 基于表达式位长确定的规则,确定表达式的位长。 基于表达式符号确定的规则,确定表达式的符号。 把表达式( 或者self-determined subexpression ) 的类型和位长向下传播到表达式的上下文决定( context-dete 阅读全文
摘要:
时序模型 分层事件列解释了事件调度运行的顺序和策略,但是它没有很好的解释仿真器是如何处理语句中的时序控制部分,所以需要学习时序模型。 仿真器的事件推进模型是时序模型,它反映了仿真时间如何推进以及事件如何调度。 敏感表:是仿真模型的输入表,它由接受新值的元素组成,当输入发生变化时,它能显示哪些输入的变 阅读全文
摘要:
阻塞赋值与非阻塞赋值概念 阻塞赋值和非阻塞赋值都属于过程赋值,所谓过程赋值语句就是只能在initial 和always 语句块中的复制语句。赋值对象只能是寄存器变量类型。右边的表达式可以是任意操作符的表达式。 阻塞赋值 阻塞赋值的语法如下 寄存器变量 = 表达式; 所谓阻塞赋值具有两层含义: 右边表 阅读全文
摘要:
分层事件队列 当我们在谈到非阻塞赋值时都会说非阻塞赋值不对LHS立刻进行赋值,它在time-step的最后进行赋值。但是time-step的最后又是什么时候?就需要讨论Verilog的分层事件队列。 Verilog描述了电路的行为,是并行进行的,在仿真的时候我们把每一条语句每一个代码块都看作并行执行 阅读全文