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

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

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

科普一下xilinx verilog語(yǔ)法技巧

FPGA之家 ? 來(lái)源:FPGA開(kāi)源工作室 ? 2023-01-30 16:21 ? 次閱讀

在Vivado Design Suite中,Vivado綜合能夠合成多種類型的屬性。在大多數(shù)情況下,這些屬性具有相同的語(yǔ)法和相同的行為。

?如果Vivado綜合支持該屬性,它將使用該屬性,并創(chuàng)建反映已使用屬性的邏輯。

?如果工具無(wú)法識(shí)別指定的屬性,則Vivado綜合會(huì)將屬性及其值傳遞給生成的網(wǎng)表。

1.ASYNC_REG

ASYNC_REG是影響Vivado工具流中許多進(jìn)程的屬性。此屬性的目的是通知工具寄存器能夠在D輸入引腳中接收相對(duì)于源時(shí)鐘的異步數(shù)據(jù),或者該寄存器是同步鏈中的同步寄存器。

當(dāng)遇到此屬性時(shí),Vivado綜合會(huì)將其視為DONT_TOUCH屬性,并在網(wǎng)表中向前推送ASYNC_REG屬性。此過(guò)程可確保具有ASYNC_REG屬性的對(duì)象未進(jìn)行優(yōu)化,并且流程中稍后的工具會(huì)接收屬性以正確處理它。

您可以將此屬性放在任何寄存器上;值為FALSE(默認(rèn)值)和TRUE。可以在RTL或XDC中設(shè)置此屬性。

ASYNC_REG Verilog Example:

(*ASYNC_REG = “TRUE” *) reg [2:0] sync_regs;

2.CLOCK_BUFFER_TYPE

在輸入時(shí)鐘上應(yīng)用CLOCK_BUFFER_TYPE以描述要使用的時(shí)鐘緩沖器類型。

默認(rèn)情況下,Vivado綜合使用BUFG作為時(shí)鐘緩沖器。支持的值是“BUFG”,“BUFH”,“BUFIO”,“BUFMR”,“BUFR”或“無(wú)”。CLOCK_BUFFER_TYPE屬性可以放在任何頂級(jí)時(shí)鐘端口上。它可以在RTL和XDC中設(shè)置。

CLOCK_BUFFER_TYPE Verilog Example

(* clock_buffer_type = “none”*) input clk1;

CLOCK_BUFFER_TYPE XDC Example

set_property CLOCK_BUFFER_TYPEBUFG [get_ports clk]

3 FSM_ENCODING

FSM_ENCODING控制狀態(tài)機(jī)上的編碼。通常,Vivado工具會(huì)根據(jù)最適合大多數(shù)設(shè)計(jì)的啟發(fā)式方法為狀態(tài)機(jī)選擇編碼協(xié)議。某些設(shè)計(jì)類型使用特定的編碼協(xié)議可以更好地工作

FSM_ENCODING可以放在狀態(tài)機(jī)寄存器上。其合法價(jià)值是“one_hot”,“sequential”,“johnson”,“grey”,“auto”和“none”。“auto”值是默認(rèn)值,允許工具確定最佳編碼??梢栽赗TL或XDC中設(shè)置此屬性。

FSM_ENCODING Example (Verilog)

(* fsm_encoding = “one_hot” *)reg [7:0] my_state;

4 KEEP

使用KEEP屬性可防止信號(hào)優(yōu)化或被吸收到邏輯塊中的優(yōu)化。此屬性指示綜合工具保持其所處的信號(hào),并將該信號(hào)放入網(wǎng)表中。

例如,如果信號(hào)是2位AND門的輸出,并且它驅(qū)動(dòng)另一個(gè)AND門,則KEEP屬性可用于防止該信號(hào)合并到包含兩個(gè)AND門的較大LUT中。

KEEP也常用于時(shí)序約束。如果對(duì)通常會(huì)優(yōu)化的信號(hào)存在時(shí)序約束,KEEP會(huì)阻止該操作,并允許使用正確的時(shí)序規(guī)則

KEEP Example (Verilog)

(* keep = “true” *) wire sig1;

assign sig1 = in1 & in2;

assign out1 = sig1 & in2;

5 RAM_STYLE

RAM_STYLE指示Vivado綜合工具如何推斷內(nèi)存??山邮艿闹凳牵?/p>

?block:指示工具推斷RAMB類型組件。

?distributed:指示工具推斷LUT RAM。

?寄存器:指示工具推斷寄存器而不是RAM。

?ultra:指示工具使用UltraScale +URAM原語(yǔ)。

默認(rèn)情況下,該工具根據(jù)啟發(fā)式選擇要推斷的RAM,以便為大多數(shù)設(shè)計(jì)提供最佳結(jié)果。將此屬性放在為RAM聲明的數(shù)組或?qū)哟谓Y(jié)構(gòu)級(jí)別上。

?如果設(shè)置了信號(hào),該屬性將影響該特定信號(hào)。

?如果設(shè)置在層次結(jié)構(gòu)級(jí)別上,則會(huì)影響該層次結(jié)構(gòu)級(jí)別中的所有RAM。

層次結(jié)構(gòu)的子級(jí)別不受影響。

這可以在RTL或XDC中設(shè)置。

RAM_STYLE Example (Verilog)

(* ram_style = “distributed” *)reg [data_size-1:0] myram [2**addr_size-1:0];

6 ROM_STYLE

ROM_STYLE指示綜合工具如何推斷ROM存儲(chǔ)器??山邮艿闹凳牵?/p>

?block:指示工具推斷RAMB類型組件

?distributed:指示工具推斷LUT ROM。默認(rèn)情況下,該工具根據(jù)啟發(fā)式選擇要推斷的ROM,以便為大多數(shù)設(shè)計(jì)提供最佳結(jié)果。

這可以在RTL和XDC中設(shè)置。

ROM_STYLE Example (Verilog)

(* rom_style = “distributed” *)reg [data_size-1:0] myrom [2**addr_size-1:0];






審核編輯:劉清

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120385
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

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

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61160
  • 數(shù)字邏輯電路
    +關(guān)注

    關(guān)注

    0

    文章

    106

    瀏覽量

    15821
  • SRL
    SRL
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6730

原文標(biāo)題:xilinx verilog 語(yǔ)法技巧

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    硬件描述語(yǔ)言(HDL)編碼技術(shù):xilinx verilog語(yǔ)法技巧

    xilinx verilog語(yǔ)法技巧 硬件描述語(yǔ)言(HDL)編碼技術(shù)讓您: ?描述數(shù)字邏輯電路中最常見(jiàn)的功能。 ?充分利用Xilinx?
    的頭像 發(fā)表于 12-13 10:29 ?3578次閱讀

    深入理解FPGA Verilog HDL語(yǔ)法()

    今天給大俠帶來(lái)的是周掌握FPGA Verilog HDL 語(yǔ)法,今天開(kāi)啟第天,下面咱們廢話就不多說(shuō)了,起來(lái)看看吧。
    發(fā)表于 07-18 09:47 ?3113次閱讀

    Verilog紅寶書_基本語(yǔ)法__恒創(chuàng)科技出品 V1.1

    Verilog紅寶書_基本語(yǔ)法__恒創(chuàng)科技出品 V1.1
    發(fā)表于 10-09 08:53

    Verilog基礎(chǔ)語(yǔ)法

    Verilog基礎(chǔ)語(yǔ)法
    發(fā)表于 05-27 08:00

    科普一下ZYNQ是什么

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容來(lái)源:ZYNQ作者:watchman最近公司開(kāi)始做個(gè)項(xiàng)目,再次使用到ZYNQ,今天給大家科普一下ZYNQ是什么,以及ZYNQ在嵌入式系統(tǒng)中的應(yīng)用情況。
    發(fā)表于 11-05 08:53

    小編科普一下RK3399/libdrm/modetest

    小編科普一下RK3399/libdrm/modetest
    發(fā)表于 03-07 07:06

    可綜合的Verilog語(yǔ)法和語(yǔ)義

    可綜合的Verilog語(yǔ)法和語(yǔ)義(劍橋大學(xué),影?。?第七版
    發(fā)表于 05-21 14:50 ?27次下載
    可綜合的<b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>和語(yǔ)義

    Verilog HDL實(shí)驗(yàn)練習(xí)與語(yǔ)法手冊(cè)

    Verilog HDL實(shí)驗(yàn)練習(xí)與語(yǔ)法手冊(cè)-高教
    發(fā)表于 05-11 11:30 ?0次下載

    常見(jiàn)的Verilog行為級(jí)描述語(yǔ)法

    常見(jiàn)的Verilog描述語(yǔ)句與對(duì)應(yīng)的邏輯關(guān)系;熟悉語(yǔ)法與邏輯之間的關(guān)系
    的頭像 發(fā)表于 09-15 08:18 ?1w次閱讀
    常見(jiàn)的<b class='flag-5'>Verilog</b>行為級(jí)描述<b class='flag-5'>語(yǔ)法</b>

    通過(guò)實(shí)例設(shè)計(jì)來(lái)加深Verilog描述語(yǔ)法理解

    作者:小魚,Xilinx學(xué)術(shù)合作 .概述 在文章《Verilog HDL入門思路梳理》我們說(shuō)過(guò)應(yīng)該如何去學(xué)習(xí)Verilog HDL描述。然而第
    的頭像 發(fā)表于 01-02 09:45 ?1566次閱讀
    通過(guò)實(shí)例設(shè)計(jì)來(lái)加深<b class='flag-5'>Verilog</b>描述<b class='flag-5'>語(yǔ)法</b>理解

    Verilog語(yǔ)法進(jìn)階

    Verilog語(yǔ)法進(jìn)階說(shuō)明。
    發(fā)表于 05-06 16:14 ?30次下載

    簡(jiǎn)單介紹一下-Verilog-AMS的基礎(chǔ)知識(shí)

    -Verilog-AMS,今天就簡(jiǎn)單介紹一下-Verilog-AMS。 為了便于物理系統(tǒng)的建模,人們?cè)?b class='flag-5'>Verilog-2005的基礎(chǔ)上,添加了
    的頭像 發(fā)表于 10-21 14:50 ?9866次閱讀
    簡(jiǎn)單介紹<b class='flag-5'>一下</b>-<b class='flag-5'>Verilog</b>-AMS的基礎(chǔ)知識(shí)

    Verilog HDL入門教程-Verilog HDL的基本語(yǔ)法

    Verilog HDL入門教程-Verilog HDL的基本語(yǔ)法
    發(fā)表于 01-07 09:23 ?179次下載

    科普一下MTU是什么,如何設(shè)置MTU

    歡迎來(lái)到東用知識(shí)小課堂,下面我們就來(lái)科普一下一下MTU是什么,如何設(shè)置MTUMTU是最大傳輸單元的意思,代指類通訊協(xié)議某層上所能通過(guò)的最大數(shù)據(jù)包大小(以byte為單位)。最大傳輸單
    的頭像 發(fā)表于 10-29 06:00 ?4713次閱讀
    <b class='flag-5'>科普</b><b class='flag-5'>一下</b>MTU是什么,如何設(shè)置MTU

    Verilog語(yǔ)法中運(yùn)算符的用法

    verilog語(yǔ)法中使用以下兩個(gè)運(yùn)算符可以簡(jiǎn)化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?759次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>中運(yùn)算符的用法