音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

大家看這個(gè)代碼有什么問(wèn)題嗎?

作者:radeonlcl 欄目:EDA技術(shù)
大家看這個(gè)代碼有什么問(wèn)題嗎?
夏宇聞verilog數(shù)字系統(tǒng)設(shè)計(jì)教程P147。
MODULE fbosc1(y1,y2,clk,rst)
   OUTPUT y1,y2;
   input clk,rst;
   reg   y1,y2;
   always @(posedge clk or posedge rst)
     if(rst) y1=0;
     else  y1=y2;
   always @(posedge clk or posedge rst)
     if(rst) y2=1;
     else  y2=y1;
endMODULE
因?yàn)樽枞x值,所以如果前一個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,則y1,y2都會(huì)取1,而如果后一個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,則y1,y2都會(huì)取0。
為什么那?

如果吧阻塞賦值改成非阻塞賦值無(wú)論那個(gè)always的復(fù)位信號(hào)先到在always模塊結(jié)束時(shí)y1=0,y2=1是確定的,這是為什么?

哪位大哥幫忙解釋一下?

2樓: >>參與討論
xjg1111
像這種可以用全局時(shí)鐘的,我從來(lái)沒(méi)用想過(guò)用阻塞觸發(fā)!
 
3樓: >>參與討論
wqi1012
回復(fù)!
你這個(gè)問(wèn)題是非阻塞賦值得概念問(wèn)題.
非阻塞賦值所存的實(shí)時(shí)鐘沿前的值,在時(shí)鐘沿處,如果數(shù)值有變化,在下一周期才會(huì)體現(xiàn)出來(lái)!

我也不知道說(shuō)的對(duì)不對(duì),請(qǐng)其他高手指教

4樓: >>參與討論
xjg1111
re
阻塞是語(yǔ)句執(zhí)行后,便執(zhí)行。
非阻塞是塊完全執(zhí)行后,塊內(nèi)的一起執(zhí)行。
所以在實(shí)際運(yùn)用中,為了避免毛毛刺兒的后級(jí)傳遞,盡量采用全局時(shí)鐘的非阻塞觸發(fā)。

* - 本貼最后修改時(shí)間:2005-1-31 21:04:18 修改者:xjg1111

5樓: >>參與討論
radeonlcl
望高手指教,歡迎大家討論。
夏宇聞的書有些例子太別扭了,實(shí)際中大概根本沒(méi)有人這么用,他就是為了介紹他的概念故意編出來(lái)這么別扭的代碼來(lái)說(shuō)明問(wèn)題。

6樓: >>參與討論
ltvxworks
有問(wèn)題
"因?yàn)樽枞x值,所以如果前一個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,則y1,y2都會(huì)取1,而如果后一個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,則y1,y2都會(huì)取0。
為什么那? "

引用樓主:其實(shí)如果代表實(shí)際中就不知道是哪個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,就有不確定性,那么就沒(méi)有必要用了。
而用非阻塞賦值,你所想要的答案是確定的,而且可以用到一些技巧中。
比如
input  rxd;
input  clk16x;
input  rst;
reg rxd1;
reg rxd2;
reg clk1x_enable;
reg [3:0] no_bits_rcvd;

always @(posedge clk16x or posedge rst)
begin
if (rst)
begin
rxd1 <= 1'b1;
rxd2 <= 1'b1;
end
else
begin
rxd1 <= rxd;   
rxd2 <= rxd1;  
end
end

always @(posedge clk16x or posedge rst)
begin
if (rst)
clk1x_enable <= 1'b0;
else if (!rxd1 && rxd2)         
clk1x_enable <= 1'b1 ;
else if (no_bits_rcvd == 4'B1001)
begin
clk1x_enable <= 1'b0;
end
end

看到有這樣的說(shuō)法,共同理解吧。
By using non_blocking statements it is made sure that right hand side of the statement is evaluated and stored before assignments are done.


7樓: >>參與討論
radeonlcl
為什么會(huì)這樣?
如果前一個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,則y1,y2都會(huì)取1,而如果后一個(gè)always模塊的復(fù)位信號(hào)先到0時(shí)刻,則y1,y2都會(huì)取0。
?????????????????????????????

8樓: >>參與討論
xjg1111
RE
贊同 ltvxworks
樓主的寫法的確有不確定性,在實(shí)際運(yùn)用中這是不允許的。

9樓: >>參與討論
radeonlcl
各位大哥,俺知道有不確定性啊,誰(shuí)給解釋一下why?
小弟初學(xué),看不懂啊。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
問(wèn)個(gè)比較弱智的問(wèn)題,別見(jiàn)笑了!
spartan 3與5v器件連接的問(wèn)題
幫忙分析原因
EPM7064LC68-15
請(qǐng)問(wèn)EPM7128S I/O輸出只有3V(電源都是5V)怎么回事,謝謝指點(diǎn)
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)