赞
踩
Verilog写代码时需要清楚自己综合出来的是组合逻辑、锁存器还是寄存器。
甚至,有时写的代码有误,vivado不能识别出来,这时打开综合后的schematic简单查看一下是否综合出想要的结果。
比如:误将一个always模块重复一遍,vivado没有识别出来导致没有生成想要的状态机,打开综合后的schematic一看,被优化掉了。
以下四种写法综合出来的schematic一样。
锁存器容易产生glitch(毛刺),少用。
IBUF是引脚的输入缓冲器。
Vivado识别到输入引脚后会自动加上IBUFG模块(这里IBUFG与BUFG什么关系呢?)。
OBUF是引脚的输出缓冲器。
LDCE:异步清零的latch。
LDPE:异步置位的latch。
CLR置低位,高有效。
GE使能G控制信号。
G为高,D输入赋值给Q,电平触发。
G为低,Q保持
D Flip-Flop with Clock Enable and Synchronous Set 带时钟使能和同步置位的D触发器。
置位S为高电平时,一个时钟C的上升沿触发导致寄存器置位1;
置位S为低电平,时钟使能CE位为高电平时,一个时钟C的上升沿触发寄存器FDCE的输出端Q装载数据口的数据D 。
procedural assigment to a non-register c is not permitted
不允许对非寄存器c进行程序赋值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。