国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談RTL設計風格及Verilog編碼規(guī)范

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-06-12 17:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、同步設計

1.1 時鐘的同步設計

關注問題:

(1)設計中盡可能使用單時鐘和單時鐘邊沿觸發(fā)

(2)不要使用例如“與”“或”門這些基本單元來生成RS鎖存或者FF

(3)不要在組合邏輯中引入反饋電路

在HDL設計中使用同步設計思想以及邏輯綜合工具。使用異步時鐘會讓更加精確的時序約束變得困難,因此,盡可能利用單個時鐘和單邊沿。(使用單個時鐘在多數設計中很難實現,在設計中盡量減少時鐘數量以減輕分析的復雜度)

盡管可以使用基本門來實現RS或FF,但時序分析工具會把它視作對組合電路的反饋,如果無法避免,則需要使用set_disable_timing設置來避免時序分析期間反饋環(huán)路的影響。

避免在內部電路生成異步時鐘,如果需要生成這樣的時鐘,那么推薦在生成時鐘的FF輸出端使用create_clock來指定時鐘。

避免反饋跨越異步復位,同樣的,避免使用門控時鐘和門控復位。

二、 復位問題

2.1 使用異步復位作為初始的復位

關注問題:

(1)使用同步復位電路可能會導致綜合器生成無法正確復位的電路,同時,同步復位會在數據路徑引入復位信號(延遲讓時序變得困難),在多時鐘系統中可能需要計數器來保證復位信號寬度。但同步復位并不是完全沒有優(yōu)點,比如,保證系統是完全同步的,可以濾除掉復位信號的一些小毛刺,同步復位需要更少的觸發(fā)器等等,這些問題整理詳細文章討論。

(2)使用異步復位對寄存器進行初始的復位會更加安全

(3)除了復位功能外,復位/置位的引腳不要用作它途

(4)在同一個復位線路上禁止同時使用同步復位和異步復位

(5)一個FF盡量不使用異步復位和異步置位

異步復位示例:

always結構僅會由時鐘上升沿以及低有效的復位信號觸發(fā)

always @(posedge CLK or negedge RST_X) if (!RST_X) Q 《= 1‘b0; else Q 《= DATA;

請注意上面表述的是初始復位(Initial reset)推薦使用異步復位。異步復位的時序分析比較困難,因為時序路徑會被切斷,從而沒有考慮到B的復位輸入到寄存器B的輸出Q的時序。同時,A的輸出到B異步復位的的時序也不會被分析。

2.2 復位問題

注意問題:

(1)不要在復位路徑引入邏輯電路

例:

reg[4:0] count; wire REN_X,EN_X,count32_x,ctl_x; assign count32_x = ~(& count) | ctl_x; assign REN_X = EN_X | count32_x; always @( posedge CLK or negedge REN_X ) if(REN_X == 1’b0) Q 《= 1‘b0; else Q 《= D;

當組合邏輯產生復位信號時,由于優(yōu)化的原因,使能信號可能會和FF分離,并且不排除危險信號驅動復位信號的可能性(FF可能會以意外的時序復位)。如上圖所示,即使在RTL描述中的FF復位信號前插入了使能邏輯,也可能會發(fā)生這種情況。并且一旦發(fā)生這種問題,很難排查。總而言之,設計電路不要總依賴綜合工具的優(yōu)化。

2.2.1 噪聲,毛刺

復位信號不排除會被噪聲干擾,產生一些毛刺,因此,推薦使用濾波,但引入濾波也不是必須的,視情況而定。下圖是高有效復位的濾波電路

如果是低有效復位?

濾波波形原理:

2.2.2 亞穩(wěn)態(tài)問題

以低有效異步復位為例,如果復位信號在時鐘沿釋放(或附近),不滿足Recovery Time以及Removal Time,會出現亞穩(wěn)態(tài),所謂復位恢復時間就是,復位釋放的時間距離時鐘沿(上升沿)的時間,復位移除時間就是,復位釋放的時間距離時鐘沿(上升沿)的時間。和數據建立時間保持時間一樣,都要滿足一定的時序要求。這是需要關注的問題。

2.2.3 同步器/異步復位同步釋放

module async_resetFFstyle2 ( output reg rst_n, input clk, asyncrst_n); reg rff1; always @(posedge clk or negedge asyncrst_n) if (!asyncrst_n) {rst_n,rff1} 《= 2’b0; else {rst_n,rff1} 《= {rff1,1‘b1}; endmodule

外部的復位信號進入推薦使用異步復位同步釋放,下面是代碼綜合出的電路圖,這種設計有它的優(yōu)勢。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • RS
    RS
    +關注

    關注

    3

    文章

    140

    瀏覽量

    111263
  • 代碼
    +關注

    關注

    30

    文章

    4947

    瀏覽量

    73291
  • 同步器
    +關注

    關注

    1

    文章

    117

    瀏覽量

    15547
  • 綜合器
    +關注

    關注

    0

    文章

    12

    瀏覽量

    6670

原文標題:RTL設計風格及Verilog編碼規(guī)范(一)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用NucleiStudio生成tb仿真需要的.verilog文件

    打開仿真頂層文件tb_top.v,存放在ITCM模塊里面的指令是通過readmemh函數讀入.verilog文件實現的: 下面通過對NucleiStudio IDE進行設置,實現將c
    發(fā)表于 11-05 07:07

    如何解決將e203的rtl導入vivado后報語法錯誤的問題

    主要內容是介紹一下如何解決將e203的rtl導入vivado后,報語法錯誤的問題。 二、分享內容 如圖所示,導入源碼后跑仿真,會報語法錯誤。 這是因為這些文件里面有用system verilog
    發(fā)表于 10-24 09:49

    RTL8723DS天線引腳焊接問題

    RTL8723DS天線引腳焊接問題 新買的wifi模組 天線引腳沒有和旁邊的gnd短接,但是焊接后就短接了,取下來發(fā)現無明顯連錫現象,其他相鄰的引腳都沒有短接。買了兩個都是這種問題
    發(fā)表于 10-08 16:57

    rtl9210b dataset為什么網上找不到呢

    rtl9210b dataset為什么網上找不到呢?這種文檔應該去哪里找呢?
    發(fā)表于 07-17 02:14

    RTL級機器人電機控制器的FPGA設計

    借助Verilog,在FPGA中實現了帶編碼器的兩臺電機的電機控制系統的RTL級設計。
    的頭像 發(fā)表于 07-07 14:01 ?2589次閱讀
    <b class='flag-5'>RTL</b>級機器人電機控制器的FPGA設計

    verilog模塊的調用、任務和函數

    在做模塊劃分時,通常會出現這種情形,某個大的模塊中包含了一個或多個功能子模塊,verilog是通過模塊調用或稱為模塊實例化的方式來實現這些子模塊與高層模塊的連接的.
    的頭像 發(fā)表于 05-03 10:29 ?1328次閱讀
    <b class='flag-5'>verilog</b>模塊的調用、任務和函數

    Verilog編寫規(guī)范

    用最右邊的字符下劃線代表低電平有效,高電平有效的信號不得以下劃線表示,短暫的有效信號建議采用高電平有效。
    的頭像 發(fā)表于 04-11 09:36 ?896次閱讀

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能。“編譯預處理”是Verilog HDL編譯系統的一個組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發(fā)表于 03-27 13:30 ?1136次閱讀
    FPGA <b class='flag-5'>Verilog</b> HDL語法之編譯預處理

    優(yōu)先編碼器:高效數據選擇與編碼的解決方案

    在現代數字電路設計中,數據的選擇與編碼是不可或缺的重要環(huán)節(jié)。面對眾多輸入信號,如何高效地選擇并編碼所需數據,成為設計師們面臨的一大挑戰(zhàn)。優(yōu)先編碼器,作為一種獨特的數字電路組件,憑借其高效、靈活的特點
    的頭像 發(fā)表于 03-25 08:33 ?887次閱讀

    英諾達推出RTL功耗優(yōu)化工具

    英諾達(成都)電子科技有限公司隆重推出芯片設計早期RTL級功耗優(yōu)化工具—EnFortius RTL Power Explorer(ERPE),該工具可以高效、全面地在RTL設計階段進行功耗優(yōu)化機會
    的頭像 發(fā)表于 03-20 17:06 ?983次閱讀

    淺談直流有刷電機驅動及調速技術

    ,圖1 為 H 橋電機驅動 電路示意圖 : 圖1 H橋電機驅動電路示意圖 點擊下方附件查看全文*附件:20250307_淺談直流有刷電機驅動及調速技術.docx
    發(fā)表于 03-07 15:24

    Verilog中signed和$signed()的用法

    1、在verilog中有時會用signed修飾符來修飾定義的數據,運算的時候也會用$signed()任務來強制轉換數據,那么signed的修飾是為什么呢,是為了區(qū)分有符號數和無符號數的加法和乘法
    的頭像 發(fā)表于 02-17 17:47 ?1237次閱讀
    <b class='flag-5'>Verilog</b>中signed和$signed()的用法

    淺談Verilog和VHDL的區(qū)別

    Verilog和VHDL是兩種廣泛使用的硬件描述語言(HDL),它們用于描述和模擬數字電路系統的行為和結構。這兩種語言的主要作用是幫助工程師設計、仿真和驗證集成電路(IC)和系統級芯片(SoC)中的硬件模塊。
    的頭像 發(fā)表于 02-17 14:20 ?2766次閱讀
    <b class='flag-5'>淺談</b><b class='flag-5'>Verilog</b>和VHDL的區(qū)別

    信道編碼和信源編碼的區(qū)別

    信道編碼和信源編碼是數字通信系統中兩個至關重要的環(huán)節(jié),它們各自承擔著不同的功能和角色。
    的頭像 發(fā)表于 01-29 16:29 ?2998次閱讀

    bcd編碼的優(yōu)缺點 bcd編碼的常見錯誤

    BCD(Binary-Coded Decimal)編碼是一種二進制編碼方式,用于將十進制數(0-9)直接轉換為二進制形式。這種編碼方式在數字系統中非常常見,尤其是在需要處理數字數據的硬件和軟件中
    的頭像 發(fā)表于 12-20 17:17 ?2463次閱讀