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

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA設(shè)計(jì)關(guān)于Verilog編碼的12規(guī)范

454398 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)聯(lián)盟 ? 2020-11-24 12:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、命名規(guī)則

① 首先每個(gè)文件只包含一個(gè)module,而且module名要小寫,并且與文件名保持一致;

② 除parameter外,信號(hào)名全部小寫,名字中的兩個(gè)詞之間用下劃線連接,如receive_clk_b;

③ 由parameter定義的常量要求全部字母大寫,自己定義的參數(shù)、類型用大寫標(biāo)識(shí),推薦使用parameter來定義有實(shí)際意義的常數(shù),包括單位延時(shí)、版本號(hào)、板類型、單板在位信息、LED亮燈狀態(tài)、電源狀態(tài)、電扇狀態(tài)等;

④ 信號(hào)名長度不超過20字符,并且避免使用Verilog和VHDL保留字命令,建議給信號(hào)名添加有意義的前綴或后綴,命名符合常用命名規(guī)范(如_clk 或clk_表示時(shí)鐘, n表示低電平有效, z表示三態(tài)信號(hào), en表示使能控制,rst 表示復(fù)位);

⑤ 保持縮寫意義在模塊中的一致性,同一信號(hào)在不同層次應(yīng)該保持一致性。

2、注釋規(guī)則

① 每個(gè)文件有一個(gè)文件頭,文件頭中注明文件名、功能描述、引用模塊、設(shè)計(jì)者、設(shè)計(jì)時(shí)間、版權(quán)信息以及修改信息等;

② 對信號(hào)、參量、引腳、模塊、函數(shù)及進(jìn)程等加以說明,便于閱讀與維護(hù),如信號(hào)的作用、頻率、占空比、高低電平寬度等。用“//”做小于1行的注釋,用“/* */”做多于1行的注釋。更新的內(nèi)容要做注釋,記錄修改原因,修改日期和修改人。

3、模塊規(guī)則

① module例化名用u_xx_x標(biāo)示;

② 建議給每個(gè)模塊要加timescale;

③ 不要書寫空的模塊,即:一個(gè)模塊至少要有一個(gè)輸入和一個(gè)輸出;

④ 為了保持代碼的清晰、美觀和層次感,一條語句應(yīng)占用一行,每行限制在80個(gè)字符以內(nèi),如果較長(超出80個(gè)字符)則換行;

⑤ 采用基于名字(name_based)的調(diào)用而不是基于順序的(order_based)的調(diào)用;

⑥ 模塊的接口信號(hào)按輸入、雙向、輸出順序定義;

⑦ 使用降序定義向量有效位順序,最低位為0;

⑧ 管腳和信號(hào)說明部分:一個(gè)管腳和一組總線占用一行,說明要清晰;

⑨ 不要采用向量的方式定義一組時(shí)鐘信號(hào);

⑩ 邏輯內(nèi)部不對input進(jìn)行驅(qū)動(dòng),在module內(nèi)不存在沒有驅(qū)動(dòng)源的信號(hào),更不能在模塊端口存在沒有驅(qū)動(dòng)的輸出信號(hào),避免在elabarate和compile時(shí)產(chǎn)生warning;

? 在頂層模塊中,除了內(nèi)部的互連和module的例化外,避免在做其他邏輯;

? 出于層次設(shè)計(jì)和同步設(shè)計(jì)的考慮,子模塊輸出信號(hào)建議用寄存器

? 內(nèi)部模塊端口避免inout,最好在最頂層模塊處理雙向總線;

? 子模塊中禁止使用三態(tài)邏輯,可以在頂層模塊使用;

? 如果能確保該信號(hào)不會(huì)被其它子模塊使用,而是直接通過頂層模塊輸出I/O口,可以在子模塊中使用三態(tài);

? 禁止出現(xiàn)未連接的端口;

? 為邏輯升級(jí)保留的無用端口和信號(hào)要注釋;對于層次化設(shè)計(jì)的邏輯,在升級(jí)中采用增量編譯;建議采用層次化設(shè)計(jì),模塊之間相對獨(dú)立。

4、線網(wǎng)和寄存規(guī)則

① 鎖存器和觸發(fā)器不允許在不同的always塊中賦值,造成多重驅(qū)動(dòng);

② 出于功能仿真考慮,非阻塞賦值應(yīng)該增加單位延時(shí),對于寄存器類型的變量賦值時(shí),尤其要注意這一點(diǎn);阻塞賦值不允許使用單位延時(shí);

③ always語句實(shí)現(xiàn)時(shí)序邏輯采用非阻塞賦值;always語句實(shí)現(xiàn)的組合邏輯和assign語句塊中使用阻塞賦值;

④ 同一信號(hào)賦值不能同時(shí)使用阻塞和非阻塞兩種方式;

⑤ 不允許出現(xiàn)定義了parameter、wire、reg卻沒有使用的情況;

⑥ 不建議使用integer類型寄存器;

⑦ 寄存器類型的信號(hào)要初始化;

⑧ 除移位寄存器外,每個(gè)always語句只對一個(gè)變量賦值,盡量避免在一個(gè)always語句出現(xiàn)多個(gè)變量進(jìn)行運(yùn)算或賦值。

5、表達(dá)式規(guī)則

① 在表達(dá)式內(nèi)使用括號(hào)表示運(yùn)算的優(yōu)先級(jí),一行中不能出現(xiàn)多個(gè)表達(dá)式;

② 不要給信號(hào)賦“x”態(tài),以免x值傳遞;

③ 設(shè)計(jì)中使用到的0,1,z等常數(shù)采用基數(shù)表示法書寫(即表示為1'b0,1'b1,1'bz或十六進(jìn)制);

④ 端口申明、比較、賦值等操作時(shí),數(shù)據(jù)位寬要匹配。

6、條件語句規(guī)則

① if 都有else和它對應(yīng),變量在if-else或case語句中所有變量在所有分支中都賦值;

② 如果用到case語句,記得default項(xiàng);

③ 禁止使用casex,case語句item必須使用常數(shù);

④ 不允許使用常數(shù)作為if語句的條件表達(dá)式;

⑤ 條件表達(dá)式必須是1bit value;

⑥ 如異步復(fù)位:

高電平有效使用“if(asynch_reset==1'b1)”,

低電平“if(asynch_reset==1'b0)”,

不要寫成:

“if(!asynch_reset)”或者“if(asynch_reset==0)”;

⑦ 不推薦嵌套使用5級(jí)以上if…else if…結(jié)構(gòu)。

7、可綜合部分規(guī)則

① 不要使用include語句;

② 不要使用disable、initial等綜合工具不支持的電路,而應(yīng)采用復(fù)位方式進(jìn)行初時(shí)化,但在testbench電路中可以使用;

③ 不使用specify模塊,不使用===、!==等不可綜合的操作符;

④ 除仿真外,不使用fork-join語句;

⑤ 除仿真外,不使用while語句;

⑥ 除仿真外,不使用repeat語句;

⑦ 除仿真外,不使用forever語句;

⑧ 除仿真外,不使用系統(tǒng)任務(wù)($);

⑨ 除仿真外,不使用deassign語句;

⑩ 除仿真外,不使用force,release語句;

? 除仿真外,不使用named events語句;不在連續(xù)賦值語句中引入驅(qū)動(dòng)強(qiáng)度和延時(shí);

? 禁止使用trireg型線網(wǎng);

? 制止使用tri1、tri0、triand和trior型的連接;

? 不要位驅(qū)動(dòng)supply0和supply1型的線網(wǎng)賦值;

? 設(shè)計(jì)中不使用macro_module;

? 不要在RTL代碼中實(shí)例門級(jí)單元尤,其下列單元:(CMOS/RCOMS/NMOS/PMOS/RNMOS/RPMOS/trans/rtrans/tranif0/tranif1/rtranif0/tranif1/pull_gate)。

8、可重用的部分規(guī)則

① 考慮未使用的輸入信號(hào)power_down,避免傳入不穩(wěn)定態(tài);

② 接口信號(hào)盡量少,接口時(shí)序盡量簡單;

③ 將狀態(tài)機(jī)(FSM)電路與其它電路分開,便于綜合和后端約束;

④ 將異步電路和同步電路區(qū)分開,便于綜合和后端約束,將相關(guān)的邏輯放在一個(gè)模塊內(nèi);

⑤ 合理劃分設(shè)計(jì)的功能模塊,保證模塊功能的獨(dú)立性;

⑥ 合理劃分模塊的大小,避免模塊過大;

⑦ 在設(shè)計(jì)的頂層(top)模塊,將I/O口、Boundary scan電路、以及設(shè)計(jì)邏輯(corelogic)區(qū)分開。

9、同步設(shè)計(jì)規(guī)則

① 同一個(gè)module中,要在時(shí)鐘信號(hào)的同一個(gè)沿動(dòng)作;

② 如果必須使用時(shí)鐘上升沿和時(shí)鐘下降沿,則要分兩個(gè)module設(shè)計(jì);

③ 在頂層模塊中,時(shí)鐘信號(hào)必須可見,不在模塊內(nèi)部生成時(shí)鐘信號(hào),而要使用DCM/PLL產(chǎn)生的時(shí)鐘信號(hào);

④ 避免使用門控時(shí)鐘和門控復(fù)位;

⑤ 同步復(fù)位電路,建議在同一時(shí)鐘域使用單一的全局同步復(fù)位電路;
異步復(fù)位電路,建議使用單一的全局異步復(fù)位電路;

⑥ 不在時(shí)鐘路徑上添加任何buffer;

⑦ 不在復(fù)位路徑上添加任何buffer;

⑧ 避免使用latch;

⑨ 寄存器的異步復(fù)位和異步置位信號(hào)不能同時(shí)有效;

⑩ 避免使用組合反饋電路;

?always有且僅有一個(gè)的敏感事件列表,敏感事件列表要完整,否則可能會(huì)造成前后仿真的結(jié)果不一致;

? 異步復(fù)位情況下需要異步復(fù)位信號(hào)和時(shí)鐘沿做敏感量,同步復(fù)位情況下只需要時(shí)鐘沿做敏感量;

? 時(shí)鐘事件的表達(dá)式要用:

“negedge

“posedge”的形式;

? 復(fù)雜電路將組合邏輯和時(shí)序邏輯電路分成獨(dú)立的always描述。

10、循環(huán)語句規(guī)則

① 在設(shè)計(jì)中不推薦使用循環(huán)語句;

② 在非常有必要使用的循環(huán)語句時(shí),可以使用for語句。

11、約束規(guī)則

① 對所有時(shí)鐘頻率和占空比都進(jìn)行約束;

② 對全局時(shí)鐘skew進(jìn)行約束;

③ 對于時(shí)序要求的路徑需要針對特殊要求進(jìn)行約束,如鎖相環(huán)鑒相信號(hào);

④ 要根據(jù)輸出管腳驅(qū)動(dòng)要求進(jìn)行約束,包括驅(qū)動(dòng)電流和信號(hào)邊沿特性;

⑤ 要根據(jù)輸入和輸出信號(hào)的特性進(jìn)行管腳上下拉約束;

⑥ 針對關(guān)鍵I/O是否約束了輸入信號(hào)和輸入時(shí)鐘的相位關(guān)系,控制輸入信號(hào)在CLK信號(hào)之后或之前多少ns到達(dá)輸入pad;

⑦ 綜合設(shè)置時(shí),fanout建議設(shè)置為3030;

⑧ 要使用輸入輸出模塊中的寄存器,如Xinlinx公司的IOB,map properties選項(xiàng)pack I/O register/latches into IOBsactor需要設(shè)置成為“for input and output”,這樣可以控制管腳到內(nèi)部觸發(fā)器的延時(shí)時(shí)間;

⑨ 布局布線報(bào)告中IOB、LUTs、RAM等資源利用率應(yīng)小于百分之八十;

⑩ 對于邏輯芯片對外輸入接口,進(jìn)行tsu/th約束;對于邏輯芯片對外輸出接口,進(jìn)行約束。

12、PLL/DCM規(guī)則

① 如果使用FPGA內(nèi)部DCM和PLL時(shí),應(yīng)該保證輸入時(shí)鐘的抖動(dòng)小于300ps,防止DCM/PLL失鎖;如果輸入時(shí)鐘瞬斷后必須復(fù)位PLL/DCM。

② 對于所有廠家的FPGA,其片內(nèi)鎖相環(huán)只能使用同頻率的時(shí)鐘信號(hào)進(jìn)行鎖相,如果特殊情況下需要使用不同頻率的信號(hào)進(jìn)行鎖相,需要得到廠家的認(rèn)可,以避免出時(shí)鐘。

13、代碼編輯規(guī)則

① 由于不同編輯器處理不同,對齊代碼使用空格,而不是tab鍵。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1374

    瀏覽量

    114537
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    956

    瀏覽量

    45030
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2056

    瀏覽量

    63416
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    828

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    編碼器安裝工藝與技術(shù)規(guī)范

    編碼器作為高精度位置檢測核心部件,廣泛應(yīng)用于伺服電機(jī)、云臺(tái)、機(jī)器人等設(shè)備,其安裝質(zhì)量直接決定測量精度、運(yùn)行穩(wěn)定性及使用壽命。本文結(jié)合工業(yè)實(shí)操標(biāo)準(zhǔn),從安裝準(zhǔn)備、核心工藝、技術(shù)規(guī)范、調(diào)試校準(zhǔn)及維護(hù)要點(diǎn)五個(gè)維度,系統(tǒng)梳理 1500 字以內(nèi)的關(guān)鍵技術(shù)內(nèi)容,為工程應(yīng)用提供精準(zhǔn)指導(dǎo)
    的頭像 發(fā)表于 03-06 14:16 ?110次閱讀

    FPGA 入門必看:Verilog 與 VHDL 編程基礎(chǔ)解析!

    很多開發(fā)者第一次接觸FPGA,都會(huì)有同樣的疑問:FPGA是硬件,不是軟件,怎么寫程序?答案就是用硬件描述語言(HDL),最常用的就是Verilog和VHDL。今天,我們就帶你入門,搞清楚FPG
    的頭像 發(fā)表于 01-19 09:05 ?472次閱讀
    <b class='flag-5'>FPGA</b> 入門必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    PEC11J系列12mm SMD長壽命編碼器:特性、參數(shù)與應(yīng)用全解析

    PEC11J系列12mm SMD長壽命編碼器:特性、參數(shù)與應(yīng)用全解析 在電子設(shè)備的設(shè)計(jì)中,編碼器是一個(gè)關(guān)鍵的組件,它能夠?qū)C(jī)械運(yùn)動(dòng)轉(zhuǎn)化為電信號(hào),為設(shè)備的精確控制提供支持。今天我們要介紹
    的頭像 發(fā)表于 12-23 15:10 ?313次閱讀

    M12編碼器線束加工:讓速度與位置反饋更加精確可靠

    M12 編碼器線束雖然微小,但卻決定著整套自動(dòng)化設(shè)備的定位能力。 在德索工廠,我們對每一條編碼器線束進(jìn)行編號(hào)、檢測、歸檔,是對客戶設(shè)備的負(fù)責(zé)。
    的頭像 發(fā)表于 11-18 18:02 ?1824次閱讀
    M<b class='flag-5'>12</b><b class='flag-5'>編碼</b>器線束加工:讓速度與位置反饋更加精確可靠

    如何使用FPGA實(shí)現(xiàn)SRIO通信協(xié)議

    本例程詳細(xì)介紹了如何在FPGA上實(shí)現(xiàn)Serial RapidIO(SRIO)通信協(xié)議,并通過Verilog語言進(jìn)行編程設(shè)計(jì)。SRIO作為一種高速、低延遲的串行互連技術(shù),在高性能計(jì)算和嵌入式系統(tǒng)中廣
    的頭像 發(fā)表于 11-12 14:38 ?5780次閱讀
    如何使用<b class='flag-5'>FPGA</b>實(shí)現(xiàn)SRIO通信協(xié)議

    如果將蜂鳥的risc-v移植到其他的fpga中想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?

    請問如果將蜂鳥的risc-v移植到其他的fpga中想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?
    發(fā)表于 11-10 06:35

    如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫測試

    本篇將詳細(xì)介紹如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫測試。SRAM是一種非易失性存儲(chǔ)器,具有高速讀取和寫入的特點(diǎn)。在FPGA中實(shí)現(xiàn)SRAM讀寫測試,包括設(shè)計(jì)SRAM接口模塊
    的頭像 發(fā)表于 10-22 17:21 ?4365次閱讀
    如何利用<b class='flag-5'>Verilog</b> HDL在<b class='flag-5'>FPGA</b>上實(shí)現(xiàn)SRAM的讀寫測試

    基于FPGA開發(fā)板TSP的串口通信設(shè)計(jì)

    本文詳細(xì)介紹基于Terasic FPGA開發(fā)板TSP(又名C5P和OSK)和其板載CP2102N USB-UART橋接芯片的串口通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)采用Verilog HDL編寫UART收發(fā)控制器,通過CP2102N實(shí)現(xiàn)FPGA
    的頭像 發(fā)表于 10-15 11:05 ?4471次閱讀
    基于<b class='flag-5'>FPGA</b>開發(fā)板TSP的串口通信設(shè)計(jì)

    FPGA FOC驅(qū)動(dòng)編碼器模塊介紹

    在多路FOC驅(qū)動(dòng)板上,一共是支持了兩種編碼器和兩種角度獲取方式,分別是AS5047P和MT6835,SPI和ABZ。AS5047P的精度是14bit,MT6835的精度是21bit,它們的價(jià)格差不多
    的頭像 發(fā)表于 09-06 09:50 ?5678次閱讀
    <b class='flag-5'>FPGA</b> FOC驅(qū)動(dòng)<b class='flag-5'>編碼</b>器模塊介紹

    M12航空插頭引腳功能:從編碼差異看連接邏輯

    選擇德索的三大理由:12編碼全覆蓋,支持免費(fèi)樣品測試;100+工程師48小時(shí)出接線方案;所有插頭通過CE認(rèn)證,7天無理由退換。做這行久了明白,客戶要的不是復(fù)雜參數(shù),而是“拿來就能用”的放心。德索把編碼邏輯做簡單了,連接自然就可
    的頭像 發(fā)表于 07-31 17:40 ?830次閱讀
    M<b class='flag-5'>12</b>航空插頭引腳功能:從<b class='flag-5'>編碼</b>差異看連接邏輯

    RTL級(jí)機(jī)器人電機(jī)控制器的FPGA設(shè)計(jì)

    借助Verilog,在FPGA中實(shí)現(xiàn)了帶編碼器的兩臺(tái)電機(jī)的電機(jī)控制系統(tǒng)的RTL級(jí)設(shè)計(jì)。
    的頭像 發(fā)表于 07-07 14:01 ?2918次閱讀
    RTL級(jí)機(jī)器人電機(jī)控制器的<b class='flag-5'>FPGA</b>設(shè)計(jì)

    fpga做電機(jī)控制有前途嗎?還是?

    咱今兒個(gè)嘮嘮 FPGA 做電機(jī)控制這事兒,先把丑話說在前頭 —— 要是有人開口就提某品牌伺服驅(qū)動(dòng)器還在用 FPGA 跑電流環(huán),咱可得把話掰扯清楚。咱自己實(shí)打?qū)嵞?Verilog 寫過 CORDIC
    的頭像 發(fā)表于 05-29 15:08 ?1684次閱讀
    用<b class='flag-5'>fpga</b>做電機(jī)控制有前途嗎?還是?

    FPGA開發(fā)任務(wù)

    1、FPGA載板設(shè)計(jì) 提供串口、2.5Gbps網(wǎng)口(自適應(yīng)100Mb、1000Mb、2.5Gb)、5V或12V供電。 2、FPGA PL編程 1)提供鏈路層數(shù)據(jù)處理功能,2.5Gbps網(wǎng)口接收數(shù)據(jù)流
    發(fā)表于 04-22 18:46

    FPGA Verilog HDL語法之編譯預(yù)處理

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

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。現(xiàn)實(shí)生活中多用于專用集成電路
    的頭像 發(fā)表于 03-17 15:17 ?4309次閱讀
    一文詳解<b class='flag-5'>Verilog</b> HDL