日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 芯片驗(yàn)證工程師
[導(dǎo)讀]下面是一個(gè)小的真實(shí)verilog代碼,具有異步set/reset邏輯(低電平有效)的觸發(fā)器模型。這個(gè)verilog模型可以正確地綜合,但在一個(gè)cornercase情況下仿真結(jié)果不正確。這個(gè)cornercase是什么?always_ff@(posedgeclkornegedgers...

下面是一個(gè)小的真實(shí)verilog 代碼,具有異步set/reset邏輯(低電平有效)的觸發(fā)器模型。這個(gè)verilog模型可以正確地綜合,但在一個(gè) corner case情況下仿真結(jié)果不正確。這個(gè) corner case是什么?

always_ff @( posedge clkor negedge rst_n // active-low resetor negedge set_n // active-low set)if (!rst_n) // reset has priority over set q_out <= '0; // reset all bits to zeroelse if (!set_n) q_out <= '1; // set all bits to oneelse q_out <= data_in; // d input assignment這個(gè)verilog模型按預(yù)期正確地進(jìn)行綜合,然而在某些仿真條件下功能錯(cuò)誤。


當(dāng)rst_n變低,它可以正確地異步復(fù)位觸發(fā)器。然后拉低set_n,在rst_n和set_n同時(shí)為低的情況下,觸發(fā)器將正確地保持復(fù)位,因?yàn)樵?a href="/tags/verilog" target="_blank">verilog代碼中復(fù)位的優(yōu)先級(jí)比置位的優(yōu)先級(jí)高。


到目前為止,一切都很好。接下來(lái),rst_n變高,set_n保持低。由于敏感度列表只對(duì)rst_n和set_n的負(fù)邊沿敏感,因此rst_n的拉高不會(huì)觸發(fā)敏感列表。這意味著,當(dāng)只有set_n為低電平時(shí)觸發(fā)器仍然處于復(fù)位狀態(tài)!

?

這個(gè)問(wèn)題引入的關(guān)鍵在于,實(shí)際的異步置位/復(fù)位是電平敏感的,因此當(dāng)復(fù)位信號(hào)rst_n被拉高時(shí)仍然會(huì)正確地發(fā)生置位。這就使得仿真和綜合后的電路行為mismatch。

?

為了避免這種麻煩,有兩種推薦的編碼風(fēng)格:

第一種方法:

1)在敏感度列表中新增一個(gè)敏感條件。

2)使用條件編譯(`ifdef/`endif)或綜合選項(xiàng)(translate_off/translate_on)對(duì)綜合工具隱藏。

always_ff @( posedge clkor negedge rst_n // active-low resetor negedge set_n // active-low set`ifndef SYNTHESIS // non-synthesizable simulation codeor posedge (rst_n
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉