skynet 发表于 2012-8-30 08:38:12

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; 吗??
这句的运行过程是怎么样的啊?

mcu1815 发表于 2012-8-30 08:42:26

建议楼主随便找本 verilog语法书看看 非阻塞赋值和阻塞赋值的区别

korgo 发表于 2012-8-30 08:55:57

都是x++的意思,但一个是阻塞赋值一个是非阻塞赋值
貌似最近玩fpga的人很多,先对阻塞和非阻塞搞清楚

philoman 发表于 2012-8-30 08:56:30

LS的, 怎么这么跟论坛元老说话呢{:lol:}

skynet 发表于 2012-8-30 08:57:55

mcu1815 发表于 2012-8-30 08:42 static/image/common/back.gif
建议楼主随便找本 verilog语法书看看 非阻塞赋值和阻塞赋值的区别

兄弟,能推荐本verilog语法书看看吗,我在网上找了很多,感觉没有经典的啊
就像C语言,最经典的就是谭浩强老大的那本了.这个verilog语法书有类似经典的吗

skynet 发表于 2012-8-30 08:58:47

philoman 发表于 2012-8-30 08:56 static/image/common/back.gif
LS的, 怎么这么跟论坛元老说话呢

木有啥子啦,FPGA真的是需要转换思想啦.不能沉溺于 C之中啦

yayakimwu 发表于 2012-8-30 09:02:23

verilog的书推荐夏老师的《verilog数字系统设计教程》

zccmymail 发表于 2012-8-30 09:17:17

为了工作,抓紧学习FPGA !

mcu1815 发表于 2012-8-30 09:17:56

skynet 发表于 2012-8-30 08:57 static/image/common/back.gif
兄弟,能推荐本verilog语法书看看吗,我在网上找了很多,感觉没有经典的啊
就像C语言,最经典的就是谭浩强老 ...

如果单论verilog语法,推荐国外写的《Verilog HDL入门》,当然如果初学的话,看夏闻宇的书就好了

sky5566 发表于 2012-8-30 09:51:01

我不太了解阻塞与非阻塞名詞,因為我們這裡並沒有使用這樣的名詞...

以下必須 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

korgo 发表于 2012-8-30 13:18:15

阻塞赋值顾名思义就是阻碍了下一句执行
非阻塞赋值就是不阻碍下一句的执行
这些都是verilog的叫法,vhdl好像叫0延时和delta延时

wye11083 发表于 2012-8-30 13:35:58

那种写法对不同的综合器而言,综合出的东西不一定相同。建议的写法是
if(counter == xxx -1)
begin
xxx
end
else
counter <= counter + 1;
这样的写法可以保证综合唯一性,即对于每一个if,必须有一个终结else,否则综合器很容易综合出latch,进而导致项目失败。

yuyu87 发表于 2012-8-30 17:25:58

简单理解为并行和串行~

pontiff 发表于 2012-8-31 16:28:28

个人推荐nawabi的书或者ciletti的书,夏的书也可以看,不过那本书应该不全是他写的,后面有部分写得不怎么样而且不是很连贯,猜测是研究生的杰作。
还有一个外国人写的verilog-HDL primer感觉很适合入门,很薄的一本书,但最基础的都涵盖了。
页: [1]
查看完整版本: FPGA新人请教个运算符的问题,关于<=的运算