FPGA新人请教个运算符的问题,关于<=的运算
这是某个例子里面module led1 (clk ,led); // 模块名及端口参数
input clk; // 输入端口定义
output led; // 输出端口定义
reg led; // 输出端口定义为寄存器型
reg buffer; // 中间变量buffer定义为寄存器型
always@(posedge clk)
begin // 顺序语句,到end止
buffer<=buffer+1; // 计数器buffer按位加1
if(buffer==26'd25000000) //判别buffer中的数值为25000000时,
//做输出处理
begin
led<=~led; // led-led反转一次。
buffer<=0;
end
end
endmodule
就是 buffer<=buffer+1; // 计数器buffer按位加1
这句不理解啊. 这个不是 buffer= buffer+1; 吗??
这句的运行过程是怎么样的啊? 建议楼主随便找本 verilog语法书看看 非阻塞赋值和阻塞赋值的区别 都是x++的意思,但一个是阻塞赋值一个是非阻塞赋值
貌似最近玩fpga的人很多,先对阻塞和非阻塞搞清楚 LS的, 怎么这么跟论坛元老说话呢{:lol:} mcu1815 发表于 2012-8-30 08:42 static/image/common/back.gif
建议楼主随便找本 verilog语法书看看 非阻塞赋值和阻塞赋值的区别
兄弟,能推荐本verilog语法书看看吗,我在网上找了很多,感觉没有经典的啊
就像C语言,最经典的就是谭浩强老大的那本了.这个verilog语法书有类似经典的吗 philoman 发表于 2012-8-30 08:56 static/image/common/back.gif
LS的, 怎么这么跟论坛元老说话呢
木有啥子啦,FPGA真的是需要转换思想啦.不能沉溺于 C之中啦 verilog的书推荐夏老师的《verilog数字系统设计教程》 为了工作,抓紧学习FPGA ! skynet 发表于 2012-8-30 08:57 static/image/common/back.gif
兄弟,能推荐本verilog语法书看看吗,我在网上找了很多,感觉没有经典的啊
就像C语言,最经典的就是谭浩强老 ...
如果单论verilog语法,推荐国外写的《Verilog HDL入门》,当然如果初学的话,看夏闻宇的书就好了 我不太了解阻塞与非阻塞名詞,因為我們這裡並沒有使用這樣的名詞...
以下必須 3 clk s3=Din
begin
if(clk)
begin
s1<=Din;
s2<=s1;
s3<=s2;
end
end
以下只須知 1 clk s3=Din
begin
if(clk)
begin
s1=Din;
s2=s1;
s3=s2;
end
end 阻塞赋值顾名思义就是阻碍了下一句执行
非阻塞赋值就是不阻碍下一句的执行
这些都是verilog的叫法,vhdl好像叫0延时和delta延时
那种写法对不同的综合器而言,综合出的东西不一定相同。建议的写法是
if(counter == xxx -1)
begin
xxx
end
else
counter <= counter + 1;
这样的写法可以保证综合唯一性,即对于每一个if,必须有一个终结else,否则综合器很容易综合出latch,进而导致项目失败。 简单理解为并行和串行~ 个人推荐nawabi的书或者ciletti的书,夏的书也可以看,不过那本书应该不全是他写的,后面有部分写得不怎么样而且不是很连贯,猜测是研究生的杰作。
还有一个外国人写的verilog-HDL primer感觉很适合入门,很薄的一本书,但最基础的都涵盖了。
页:
[1]