微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请高手解答几个关于Verilog的问题

请高手解答几个关于Verilog的问题

时间:10-02 整理:3721RD 点击:
请高手解答几个关于Verilog的问题
以下都是夏宇闻Verilog数字系统设计教程中的例子,有几点疑问,请大侠帮忙
1。always @(posedge clk or posedge clr)
begin
if(clr) q<=0;
else if(en) q<=d;
end
其中, elseif(en)中的en是什么意思?
2.在按位取反中的例子
rega='b1010;//rega的初值为'b1010
rega=~rega;//rega的值进行取反运算后变为'b0101
那个'b1010是否应该是默认的32位(或更高)呢?如果是,按位去反后的答案是不是错了?
谢谢

1。那个en就是触发器翻转的条件,相当于en=0,q的值保持不变,en=1,d的值存储到q
当然你可以写成
if(clr)q<= 0;
elseq<= en? d:q;
这样意思明确一些
2。首先这种写法很不好,因为不够清晰,书上列出来只是为了说明语法,
建议写代码的时候,全写成4'b0101之类的。
我的印象,编译器先把'b1010当成32位的,高位补零,然后付给rega的时候,根据
rega的宽度从低位取。
不知道rega的定义是不是4位,如果是,按位取反没有问题。

谢谢 您说的很明白了 ^_^

其实两个边沿触发不好吧

It is the difference between sync reset and async reset.

不知道的说,呵呵

4楼大侠,sync和async是什么意思?能说的具体点吗?Thank you^_^

对不起,我白天在的地方没有办法敲中文,
其实就是同步和异步的意思。
不好意思。

解释的好清楚!:)

1。en代表触发器使能端
2。建议前面写清楚位数

谢谢各位大侠了 ^_^ 还有问题我会再来请教的再谢~~~~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top