美文网首页
FPGA信号亚稳态解决方案

FPGA信号亚稳态解决方案

作者: zhang_402d | 来源:发表于2019-08-13 06:25 被阅读0次

    1、模块之间的连接用 wire 型变量。

    2、输入必须为 wire ,输出可以为 wire 也可以为  reg 型变量。

    3、时序电路中,判断赋值,结果会在下一周期输出。如图1。

    FPGA信号亚稳态解决方案

    图1 

    4、always块中,只有if不会生成锁存器。

    5、if会生成查找表。

    6、组合逻辑在电平触发时才会生成锁存器。

    7、(|write_start)==1'b0      按位或,只要write_start 的某一位为1,则结果为1,只有全为0,则结果为0,这样可以节约资源。

    8、在 testbench 中可以强制改变某一信号的值,使用 force 语句。eg: 在 initial 中,在 41280 ns 时将 read_cnt 赋值为  2  (force 例化顶层模块名字.信号名字),如图2:

    FPGA信号亚稳态解决方案

    图 2  强制改变仿真时某一信号的值

    9、ModelSim 中,状态机内的状态名可以在 run.do 文件中让其转化出来,定义一个 virtual type 类型的结构体,如图3:注: virtual type 后面和 virtual_new_signal 前面需要有空格。

    FPGA信号亚稳态解决方案

    图3  在ModelSim中将状态显示出来

    10、敏感列表内是电平出发才可以产生 latch,敏感列表内的变量不全,赋值符号右边的变量必须放在敏感列表内,作为判断条件的变量一定要放到敏感列表内。逻辑判断必须有 else 结束赋值, case 要有 default 赋值。

    11、串并转换,最简单的是位拼接。

    12、带宽=数据总线比特位宽 * 总线同步时钟频率。

    13、差分转单端信号,单端信号转差分信号。

    14、时钟走线走金线,到达寄存器的延时相同,shew小。计数分频的时钟不能用于触发触发器,计数分频到达寄存器的延时不相同,但可以使用标志位来控制。

    15、a = 4`b1111 && 4'b0011= 1 逻辑与

    a = 4`b1111 & 4'b0011= 4`b0011 按位与

    16、寄存器在时钟上升沿到来时立刻将时钟上升沿前一点数据输出,如果数据上升沿和时钟上升沿同时时,数据会下一拍输出。

    17、跨时钟域打拍操作必须时钟目标时钟域。

    FPGA信号亚稳态解决方案 FPGA信号亚稳态解决方案 FPGA信号亚稳态解决方案

    同频异相

    FPGA信号亚稳态解决方案 FPGA信号亚稳态解决方案

    双buffer作用:1. 跨时钟域; 2. 完成数据位宽转换; 3. 完成数据缓冲。

    RAM可以重复读,FIFO只能读一次,如果有可能读错数据使用RAM。

    FPGA信号亚稳态解决方案

    相关文章

      网友评论

          本文标题:FPGA信号亚稳态解决方案

          本文链接:https://www.haomeiwen.com/subject/repmjctx.html