Verilog综合出来的图

Verilog综合出来的图

码农世界 2024-06-17 后端 114 次浏览 0个评论

Verilog写代码时需要清楚自己综合出来的是组合逻辑、锁存器还是寄存器。

甚至,有时写的代码有误,vivado不能识别出来,这时打开综合后的schematic简单查看一下是否综合出想要的结果。

比如:误将一个always模块重复一遍,vivado没有识别出来导致没有生成想要的状态机,打开综合后的schematic一看,被优化掉了。

一、部分Verilog语句综合出来的原理图

1.1 综合出组合逻辑

以下四种写法综合出来的schematic一样。

Verilog综合出来的图

Verilog综合出来的图

Verilog综合出来的图

Verilog综合出来的图

Verilog综合出来的图

1.2 综合出锁存器-Latch

Verilog综合出来的图

Verilog综合出来的图

锁存器容易产生glitch(毛刺),少用。

1.3 综合出寄存器

Verilog综合出来的图

Verilog综合出来的图

二、对应的部分原语

  • IBUF/IBUFG

    IBUF是引脚的输入缓冲器。

    Vivado识别到输入引脚后会自动加上IBUFG模块(这里IBUFG与BUFG什么关系呢?)。

    Verilog综合出来的图

    • OBUF

      OBUF是引脚的输出缓冲器。

      Verilog综合出来的图

      • LDCE-锁存器

        LDCE:异步清零的latch。

        LDPE:异步置位的latch。

        Verilog综合出来的图

        CLR置低位,高有效。

        GE使能G控制信号。

        G为高,D输入赋值给Q,电平触发。

        G为低,Q保持

        • FDSE

          D Flip-Flop with Clock Enable and Synchronous Set 带时钟使能和同步置位的D触发器。

          Verilog综合出来的图

          置位S为高电平时,一个时钟C的上升沿触发导致寄存器置位1;

          置位S为低电平,时钟使能CE位为高电平时,一个时钟C的上升沿触发寄存器FDCE的输出端Q装载数据口的数据D 。

          三、语法不报错,综合报错

          3.1 wire型变量不能使用非阻塞赋值-vivado语法虽未报错,但不能综合

          Verilog综合出来的图

          Verilog综合出来的图

          procedural assigment to a non-register c is not permitted

          不允许对非寄存器c进行程序赋值

          四、参考链接:

          ug471_7Series_SelectIO

          Xilinx 7系 FPGA片上资源之触发器 FDCE FDPE FDRE FDSE-CSDN博客

          xilinx FPGA触发器和锁存器_fpga ldce-CSDN博客

转载请注明来自码农世界,本文标题:《Verilog综合出来的图》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,114人围观)参与讨论

还没有评论,来说两句吧...

Top