91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Verilog HDL 編譯器指令說(shuō)明

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:碎碎思 ? 2021-11-03 09:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Verilog HDL 編譯器指令

復(fù)雜一點(diǎn)的系統(tǒng)在進(jìn)行設(shè)計(jì)或者驗(yàn)證時(shí),都會(huì)用到一些編譯器指令,那么什么是編譯器指令?

Verilog HDL編譯器指令由重音符(‘)開(kāi)始。在Verilog 語(yǔ)言編譯時(shí),特定的編譯器指令在整個(gè)編譯過(guò)程中有效(編譯過(guò)程可跨越多個(gè)文件),直到遇到其它的不同編譯程序指令。不完整的標(biāo)準(zhǔn)編譯器指令如下:

d7913de0-3825-11ec-82a8-dac502259ad0.png

下面分解一下,每個(gè)指令單獨(dú)說(shuō)明一下:

’define和’undef

1.’define指令

’define指令用于文本替換,它很像C語(yǔ)言中#define指令。它生成一個(gè)文本宏。該指令既可以在模塊內(nèi)部定義,也可以在模塊之外定義。一旦編譯了’define指令,它在整個(gè)編譯過(guò)程中都有效。

如果已經(jīng)定義了一個(gè)文本宏,那么在它的宏名之前加上重音符號(hào)(’)就可以在源程序中’引用該文本宏。

在編譯器編譯時(shí),將會(huì)自動(dòng)用相應(yīng)的文本塊代替字符串‘macro_name。將Verilog HDL中的所有編譯指令都看作預(yù)定義的宏名,將一個(gè)編譯指令重新定義為一個(gè)宏名是非法的。

一個(gè)文本宏定義可以帶有一個(gè)參數(shù)。這樣,就允許為每一個(gè)單獨(dú)的應(yīng)用定制文本宏。

文本宏定義的語(yǔ)法格式如下:

’define 《text_macro_name》 《macro_text》

其中:(1)《text_macro_name》為文本的宏名字,其語(yǔ)法格式為

text_macro_identifier[《list_of_formal_arguments》]

①text_macro_identifier為宏標(biāo)識(shí)符,要求簡(jiǎn)單標(biāo)識(shí)符。

②《list_of_formal_arguments》為形參列表。一旦定義一個(gè)宏名,就可以在源程序的任何地方使用它,而沒(méi)有范圍限制。

(2)《macro_text》為宏文本,可以是與宏名同行的任意指定文本。

①如果指定的文本超過(guò)一行,那么新的一行需要用反斜杠()作為起始。這樣,反斜杠后面的文本也將作為宏文本的一部分,參與宏替換。反斜杠本身并不參與宏替換,編譯時(shí)將忽略它。

②如果宏文本包含了一個(gè)單行注釋語(yǔ)句(以“//”開(kāi)始的注釋語(yǔ)句),則該語(yǔ)句不屬于替換文本,編譯時(shí)不參與替換。

③宏文本可以空白。

[例] ’define指令Verilog HDL化述的例子1。

‘define wordsize 8

reg[1:’wordsize] data;

//define a nand with variable delay

‘define var_nand(dly) nand #dly

’var_nand(2) gl21 (q21, nl0, nil);

‘var_nand(5) gl22(q22, nl0, nil);

[例] ’define指令Verilog HDL非法描述的例子2

’define first_half “start of string

$ display( ’first_half end of string”);

[例] ‘define 指令 Verilog HDL 非法描述的例子 3。

’define max(a,b)((a)》(b)?(a):(b))

n = ‘max(p + q, r + s) ;

將要擴(kuò)展為

n = ((p + q ) 》(r + s))?(p + q ) :(r + s);

2.’undef指令

‘undef指令用于取消前面定義的宏。如果先前并沒(méi)有使用指令’define進(jìn)行宏定義,那么使用’undef指令將會(huì)導(dǎo)致一個(gè)警告。

’undef指令的語(yǔ)法格式如下:

’undef text_macro_identifier

一個(gè)取消的宏沒(méi)有值, 就如同沒(méi)有被定義一樣。

‘define SIZE 8

’define xor_b(x,y)(x &!y)|(!x & y)

//These text macros can be used as follow:

reg [‘SIZE - 1 : 0] data out;

c = xor_b(a, b);

’undef SIZE

’celldefine和’endcelldefine

這兩個(gè)指令用于將模塊標(biāo)記為單元模塊,它們表示包含模塊定義。某些PLI使用單元模塊用于這些應(yīng)用,如計(jì)算延遲。

該命令可以出現(xiàn)在源代碼描述中的任何地方。但是,推薦將其放在模塊定義的外部。

[例] ’celldefine指令Verilog HDL描述的例子。

‘celldefine

module my_and(y, a, b);

output y;

input a, b;

assign y = a & b;

endmodule

’endcelldefine

’default_nettype

該指令用于為隱含網(wǎng)絡(luò)指定網(wǎng)絡(luò)類(lèi)型,也就是為那些沒(méi)有被說(shuō)明的連線定義網(wǎng)絡(luò)類(lèi)型。它只可以出現(xiàn)在模塊聲明的外部,允許多個(gè)’default_netype指令。

如果沒(méi)有出現(xiàn)’default_netype指令,或者如果指定了’resetall指令,則隱含的網(wǎng)絡(luò)類(lèi)型是wire。當(dāng)default_netype設(shè)置為none時(shí),需要明確地聲明所有網(wǎng)絡(luò);如果沒(méi)有明確地聲明網(wǎng)絡(luò),則產(chǎn)生錯(cuò)誤。

’default_netype指令格式為:

‘default_nettype default_nettype_value

其中default_nettype_value的值可以是wire、tri、tri0、tri1、wand、triand、wor、trior、trireg、uwire和none。

’ifdef、 ‘else、 ’elsif、 ’endif 和’ifndef

’ifdef編譯器命令

條件編譯:

顯而易見(jiàn),即只有在條件滿足的時(shí)候才對(duì)這部分代碼進(jìn)行編譯,也就是對(duì)一部分內(nèi)容指定了編譯的條件:

當(dāng)滿足條件時(shí)對(duì)一組語(yǔ)句進(jìn)行編譯,

當(dāng)條件不滿足時(shí)則對(duì)另外一組語(yǔ)句進(jìn)行編譯。

用途:

1、選擇一個(gè)模板的不同代表部分。

2、選擇不同的時(shí)序或結(jié)構(gòu)信息。

3、對(duì)不同的EDA工具,選擇不同的激勵(lì)。(如:Verilog代碼中的一部分可能因編譯環(huán)境不同而不同,為避免在不同環(huán)境需要替換不同版本的Verilog 設(shè)計(jì),條件編譯就是一個(gè)很好的解決方案)

用法

‘ifdef 宏名(標(biāo)識(shí)符)

程序段1.。.

’else

程序段2.。.

‘endif

當(dāng)宏名被定義過(guò)了,就編譯程序段1;反之,當(dāng)宏名未被定義過(guò),就編譯程序段2;

其中,else部分可以省略。即:當(dāng)宏名被定義過(guò)了,就編譯程序段1;反之,不編譯程序段1;

[例] ’ifdef 指令 Verilog HDL 描述的例子。

module and_op (a, b, c);

output a;

input b, c;

’ifdef behavioral

wire a = b & c;

‘else

and a1 (a,b,c);

’endif

endmodule

‘ifndef編譯器命令

額外的,還有‘ifndef語(yǔ)句,與’ifdef功能相反:

即當(dāng)宏名沒(méi)被定義過(guò),就編譯程序段1;反之,當(dāng)宏名未被定義過(guò)了,就編譯程序段2;

‘ifndef 宏名(標(biāo)識(shí)符)

程序段1.。.

’else

程序段2.。.

‘endif

[例] ’ifndef 指令 Verilog HDL 描述的例子。

module test;

’ifdef first_block

‘ifndef second_nest

initial $ display(“first_block_is_defined”);

’else

initial $ display(“first_block and second_nest defined”);

‘endif

’elsif second_block

initial $ display( “second_block defined, first_block is not”);

‘else

’ifndef last_result

initial $ display(”first_block, second_block,“

”last_result not defined.”);

‘elsif real_last

initial $ display(“first_block, second_block not defined,”

“ last_result and real last defined.”);

’else

initial $ display(“Only last result defined!”);

‘endif

’endif

endmodule

這里還有一個(gè)‘elsif指令,簡(jiǎn)單說(shuō)明一下。

‘ifndef test_macro_identifier

ifndef_group_of_1ines

{ ’elsif text_macro_identifier elsif_group_of_lines }

[ ‘else else_group_of_lines ]

’endif

①當(dāng)遇到’ifndef時(shí),測(cè)試’ifdef文本宏標(biāo)識(shí)符,查看在Verilog HDL源文件描述中是否使用‘define作為一個(gè)文本宏名字;②如果’ifndef沒(méi)有定義文本宏標(biāo)識(shí)符,則對(duì)’ifndef所包含的行作為描述的一部分進(jìn)行編譯,如果還有’else或者’dsif編譯器指令,則忽略這些編譯器指令和相關(guān)的行組;③如果定義’ifiidef文本宏標(biāo)識(shí)符,則忽略’ifndef所包含的行;④如果有’elsif編譯器指令,測(cè)試’elsif文本宏標(biāo)識(shí)符,查看在Verilog HDL源文件描述中,是否使用‘define作為一個(gè)文本宏名字;⑤如果’elsdef定義文本宏標(biāo)識(shí)符,則對(duì)’elsdef所包含的行作為描述的一部分進(jìn)行編譯,如果還有’else或者’elsif編譯器指令,則忽略這些編譯器指令和相關(guān)的行組;⑥如果沒(méi)有定義第一個(gè)’elsif文本宏標(biāo)識(shí)符,則忽略第一個(gè)’elsif所包含的行;⑦如果有多個(gè)’elsif編譯器命令,將按照它們?cè)赩erilog HDL源文件中的描述順序和評(píng)估第一個(gè)’elsif編譯器指令的方法,對(duì)這些指令進(jìn)行評(píng)估;⑧如果有一個(gè)’else編譯器命令,則將’else所包含的行作為描述的一部分進(jìn)行編譯。

’include

在編譯期間,’include編譯器指令用于嵌入另一個(gè)文件的內(nèi)容。既可以用相對(duì)路徑名定義文件,也可以用全路徑名定義文件。其語(yǔ)法格式為:

‘include “filename”

使用’inchide編譯器指令的優(yōu)勢(shì)主要體現(xiàn)在以下幾方面:

(1)提供了一個(gè)配置管理不可分割的一部分;

(2)改善了VerilogHDL源文件描述的組織結(jié)構(gòu);

(3)便于維護(hù)Verilog HDL源文件描述。

[例 ]’include指令Verilog HDL描述的例子。

’include “parts/count. v”

‘include “fileB”’include “fileB” //包含 fileB

‘resetall

該編譯器遇到’resetall指令時(shí),會(huì)將所有的編譯指令重新設(shè)置為默認(rèn)值。推薦在源文件的開(kāi)始放置’resetall.將’resetall命令放置在模塊內(nèi)或者UDP聲明中是非法的。其語(yǔ)法格式為

‘resetall

’line

對(duì)于Verilog工具來(lái)說(shuō),跟蹤Verilog HDL源文件的名字和文件的行的行號(hào)是非常重要的,這些信息可以用于調(diào)試錯(cuò)誤消息或者源代碼,Verilog PL1訪問(wèn)可以它。

然而,在很多情況下,Verilog源文件由其他工具進(jìn)行了預(yù)處理。由于預(yù)處理工具可能在Verilog HDL源文件中添加了額外的行,或者將多個(gè)源代碼行合并為一個(gè)行,或者并置多個(gè)源文件,等等,可能會(huì)丟失原始的源文件和行信息。

’line編譯器命令可以用于指定的原始源代碼的行號(hào)和文件名。如果其他過(guò)程修改了源文件,這允許定位原始的文件。當(dāng)指定了新行的行號(hào)和文件名時(shí),編譯器就可以正確地定位原始的源文件位置。然而,這要求相應(yīng)的工具不產(chǎn)生’line命令。

其語(yǔ)法格式為

‘line number “filename” level

其中,number是一個(gè)正整數(shù),用于指定跟隨文本行的新行行號(hào),filename是一個(gè)字符串常數(shù),將其看作文件的新名字,文件名可以是全路徑名字或者相對(duì)路徑名字;level為該參數(shù)的值,可以是0、1或者2:①當(dāng)為1的時(shí)候,輸入一個(gè)include行后的下面一行是第一行;②當(dāng)為2的時(shí)候,退出一個(gè)inlcude行后的下面一行是第一行;③當(dāng)為0的時(shí)候,指示任何其他行。

[例] ’line 指令 Verilog HDL 描述的例子。

‘line3 “orig.v” 2

//該行是 orig.v 存在 include 文件后的第 3 行。

’timescale

在Verilog HDL模型中,所有的時(shí)延都用單位時(shí)間表述??墒褂谩痶imescale編譯器指令將時(shí)間單位與實(shí)際時(shí)間相關(guān)聯(lián),該指令用于定義時(shí)延的單位和時(shí)延精度。

作用:

timescale用于定義延時(shí)的單位和延時(shí)的精度,如timescale 1ns/100ps那么時(shí)間單位就是1ns,精度就是100ps。

時(shí)間單位,表示了仿真時(shí)測(cè)量的單位,比如延時(shí)1,1ns;精度則表示仿真器只識(shí)別的范圍,比如精度是100ps,那么如果你1.3ns,編譯器是識(shí)別,但是如果寫(xiě)1.32,那么由于精度達(dá)不到那么細(xì),所以0.02被四舍五入掉。

`timescale影響著全部模塊,直到遇到另外的timescale。

’timescale編譯器指令格式為:

’timescale time_unit/time_precision

其中,time_unit指定用于時(shí)間和延遲測(cè)量的單位,可選的值為1、10或100;time_precision用于仿真前,確定四舍五入延遲值。時(shí)間分辨率子,可選的單位為s msus sps或fs。

[例] ‘timescale 指令 Verilog HDL 描述的例子。

’timescale 10 ns / 1 ns

module test;

reg set;

parameter d = 1.55;

initial begin

# d set = 0;

# d set = 1;

end

endmodule

根據(jù)時(shí)間精度, 參數(shù) d 的值從 1.55 四舍五入到 1.6。模塊的時(shí)間單位是 10ns 精度是1 ns。因此, 參數(shù) d 的延遲從 1.6 標(biāo)定到 16。

’unconnected_drive和‘nounconnected_drive

當(dāng)一個(gè)模塊所有未連接的端口出現(xiàn)在’unconnected_drive和’nounconnecteddrive指令之間時(shí),將這些未連接的端口上拉或者下拉,而不是按通常的默認(rèn)值處理。

指令’unconnected_drive使用pull1/pull0參數(shù)中的一個(gè):當(dāng)指定pull時(shí),所有未連接的端口自動(dòng)上拉;當(dāng)指定pill0時(shí),所有未連接的端口自動(dòng)下拉。

建議成對(duì)使用’unconnected_drive和‘nounconnected_drive指令,但不是強(qiáng)制要求。這些指令在模塊外部成對(duì)指定。

’resetall指令包括‘nounconnected_drive指令的效果。

[例]nounconnected_drive/ ’unconnected drive 指令 Verilog HDL 描述的例子。

‘unconnected_drive pull1

module my_and(y, a, b);

output y;

input a, b;

assign y = a & b;

endmodule

module test;

reg b;

wire y;

my_and ul(y, ,b);

endmodule

’nounconnected_drive

‘pragma

’pragma指令是一個(gè)結(jié)構(gòu)化的說(shuō)明,它用于改變對(duì)Verilog HDL源文件的理解。由這個(gè)指令所引入的說(shuō)明稱(chēng)為編譯指示。編譯指示不同于Verilog HDL標(biāo)準(zhǔn)所指定的結(jié)果,它為指定實(shí)現(xiàn)的結(jié)果。其語(yǔ)法格式為

’pragma pragma_name [ pragma_expression { , pragma_expression } ]

其中 ,pragma_name 為編譯指示的名字, 可以是 $ 開(kāi)頭的系統(tǒng)標(biāo)識(shí)符或者一般標(biāo)識(shí)符; pragma_expression 為編譯指示表達(dá)式。

注:reset和resetall編譯指示將恢復(fù)默認(rèn)值和pragma_keywords所影響的狀態(tài)。

’begin_keywords和’end_keyword

‘begin_keywords和’end_keyword指令用于指定在一個(gè)源代碼塊中,基于不同版本的IEEE_Stdl364標(biāo)準(zhǔn),確定用于關(guān)鍵字的保留字。該對(duì)指令只指定那些作為保留關(guān)鍵字的標(biāo)識(shí)符。只能在設(shè)計(jì)元素(模塊、原語(yǔ)和配置)外指定該關(guān)鍵字,并且需要成對(duì)使用。其語(yǔ)法格式為:

‘begin_keywords “version_specifier”

。..

’end_keyword

其中,version_specifier為可選的參數(shù),包括1364-1995、1364-2001、1364-2001-noconfig和1364-2005。

[例] ’begin_keywords 和 ‘end_keyword 指令 Verilog HDL 描述的例子。

’begin_keywords “1364- 2001” //使 用 IEEE Std 1364- 2001 Verilog 關(guān) 鍵 字

‘module m2(。..);

reg[63:0] logic; //logic 不 是 1364 - 2001 的 關(guān) 鍵 字

。..

endmodule

’end_keywords

(補(bǔ)充一)Verilog編譯器指示語(yǔ)句

設(shè)計(jì)者在寫(xiě)設(shè)計(jì)代碼時(shí),有時(shí)可能針對(duì)仿真寫(xiě)一些語(yǔ)句,這些語(yǔ)句可能是不為DC所接受,也不希望DC接受;設(shè)計(jì)者如果不對(duì)這些語(yǔ)句進(jìn)行特殊說(shuō)明,DC讀入設(shè)計(jì)代碼時(shí)就會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤。另一種情況是,設(shè)計(jì)者在寫(xiě)設(shè)計(jì)代碼,有些設(shè)計(jì)代碼是為專(zhuān)有的對(duì)象寫(xiě)的(如公司內(nèi)部),這些專(zhuān)有的設(shè)計(jì)代碼可能不希望被綜合。Synopsys提供了引導(dǎo)語(yǔ)句,設(shè)計(jì)者可以使用這些引導(dǎo)語(yǔ)句控制DC綜合的對(duì)象

可以利用HDL描述中的一些特定的注釋語(yǔ)句來(lái)控制綜合工具的工作,從而彌補(bǔ)仿真環(huán)境和綜合環(huán)境之間的差異,這些注釋語(yǔ)句稱(chēng)為編譯器指示語(yǔ)句。

translate_off/ translate_on

這組語(yǔ)句用來(lái)指示DC停止翻譯 “//synopsys.。.translate_off”之后的Verilog描述,直至出現(xiàn) “//synopsys translate_on”。當(dāng)Verilog代碼鐘含有供仿真用的不可綜合語(yǔ)句時(shí),這項(xiàng)功能能使代碼方便地在仿真工具與綜合工具之間移植。

例1(translate_off/ translate_on指示語(yǔ)句的使用):

//synopsys translate_off

//synopsys translate_on

parallel_case/ full_case

DC可能使用帶優(yōu)先級(jí)的結(jié)構(gòu)來(lái)綜合Verilog的case語(yǔ)句,為避免這種情況,可以使用“//synopsys.。.parallel_case”指示DC將case語(yǔ)句綜合為并行的多路選擇器結(jié)構(gòu)。

(parallel_case指示語(yǔ)句的使用):

always @ (state)

case (state) //synopsys parallel_case

2’b00:new_state = 2’b01;

2’b01:new_state = 2’b10;

2’b10:new_state = 2’b00;

default:new_state = 2’b00;

endcase

另外,Verilog允許case語(yǔ)句不覆蓋所有可能情況,當(dāng)這樣的代碼由DC綜合時(shí)將產(chǎn)生鎖存器。為避免這種情況,可以使用“//synopsys full_case”指示DC所有可能已完全覆蓋。

例2 (full_case指示語(yǔ)句的使用):

always @ (sel or a1 or a2)

case (sel) //synopsys full_case

2’b00:z = a1;

2’b01:z = a2;

2’b10:z = a1 & a2;

endcase

(補(bǔ)充二)Verilog PL1是什么?

上面有提到過(guò)PLI接口,這里簡(jiǎn)單介紹下,因?yàn)橛玫谋容^少,所以就一筆帶過(guò)。

編程語(yǔ)言接口(Program Language Interface,PLI)提供了通過(guò)C語(yǔ)言函數(shù)對(duì)Verilog數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)和讀取操作的方法。

PLI接口主要提供以下三種功能。

(1)PLI接口允許用戶編寫(xiě)自定義的系統(tǒng)任務(wù)和系統(tǒng)函數(shù)。用戶寫(xiě)出相應(yīng)的PLI程序并連接到仿真器后,就可以在自己寫(xiě)的VerilogHDL程序中使用這些系統(tǒng)任務(wù)和系統(tǒng)函數(shù)。一旦在仿真過(guò)程中調(diào)用這些任務(wù)或者函數(shù),仿真器就會(huì)找到對(duì)應(yīng)的用戶所編寫(xiě)的PLI程序并執(zhí)行,從而實(shí)現(xiàn)仿真器的定制。

(2)這個(gè)接口還允許用戶在自己的PLI程序中與仿真器中例化的VerilogHDL硬件進(jìn)行交互,如讀一個(gè)線網(wǎng)絡(luò)的值、向一排寄存器寫(xiě)值以及設(shè)置一個(gè)單元的延遲,等等。

對(duì)于PLI程序而言,仿真器中的Verilog實(shí)例完全透明,用戶可以對(duì)這些硬件做任何操作(當(dāng)然,不能修改硬件結(jié)構(gòu))。有了這個(gè)功能,用戶就可以在自定義的任務(wù)/函數(shù)中對(duì)硬件執(zhí)行某些用VerilogHDL語(yǔ)言難以完成的操作。

(3)某些特定的操作需要對(duì)仿真過(guò)程中一些信號(hào)的變化做出響應(yīng),雖然可以用always過(guò)程語(yǔ)句來(lái)監(jiān)控少量信號(hào)的變化,但如果需要監(jiān)測(cè)大量信號(hào),這種機(jī)制并不現(xiàn)實(shí)。

PLI接口提供了一種函數(shù)回調(diào)機(jī)制解決這個(gè)問(wèn)題。用戶可以將某個(gè)線網(wǎng)絡(luò)/寄存器等信號(hào)掛上一個(gè)PLI程序中的C函數(shù)。每當(dāng)該信號(hào)變化時(shí),調(diào)用這個(gè)C函數(shù),從而很方便地監(jiān)測(cè)信號(hào)。

除了上面所說(shuō)的這些機(jī)制外,PLI還能讓用戶控制仿真的過(guò)程,例如暫停、退出以及向日志文件里寫(xiě)信息等,還可以獲取仿真過(guò)程的數(shù)據(jù),如當(dāng)前仿真時(shí)間等。在實(shí)際的PLI程序中,同樣不可缺少這些功能。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1374

    瀏覽量

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

    關(guān)注

    8

    文章

    332

    瀏覽量

    48971
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51578

原文標(biāo)題:Verilog HDL 編譯器指令

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Verilog HDL語(yǔ)法學(xué)習(xí)筆記

    Verilog HDL 語(yǔ) 言 最 初 是 作為 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后來(lái)被著名的 Cadence Design Systems 公司收購(gòu))模擬
    的頭像 發(fā)表于 03-04 15:04 ?284次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語(yǔ)法學(xué)習(xí)筆記

    C編譯器錯(cuò)誤與解決方法

    C語(yǔ)言keil編譯器提示錯(cuò)誤的解決方法,可以幫你解決程序編譯中的煩惱!! C編譯器錯(cuò)誤與解決方法 1. Warning 280:’i’:unreferenced local variable
    發(fā)表于 01-22 08:03

    #define預(yù)編譯指令

    PI 3.14 [*]//那么大家在后面的調(diào)用中就是直接使用PI就可以了 [*]float Circle_Area = PI * r*r; [*]//實(shí)際在編譯器編譯的時(shí)候就會(huì)把字符PI替換成3.14
    發(fā)表于 12-05 07:29

    #include預(yù)編譯指令

    ?那就要從編譯器眼中的#include指令說(shuō)起。 長(zhǎng)話短說(shuō),大家可以把#include“xxx.h”看成是文本的展開(kāi),簡(jiǎn)而言之就是通過(guò)該指令把h文件里的內(nèi)容進(jìn)行了展開(kāi)。如下范例所示,我們定義一個(gè)H文件
    發(fā)表于 12-04 07:43

    開(kāi)源鴻蒙技術(shù)大會(huì)2025丨編譯器與編程語(yǔ)言分論壇:語(yǔ)言驅(qū)動(dòng)系統(tǒng)創(chuàng)新,編譯賦能生態(tài)繁榮

    在萬(wàn)物智聯(lián)的時(shí)代背景下,操作系統(tǒng)底層能力的構(gòu)建離不開(kāi)編程語(yǔ)言與編譯器的關(guān)鍵支撐。作為開(kāi)源鴻蒙生態(tài)的核心技術(shù),語(yǔ)言設(shè)計(jì)與編譯器、虛擬機(jī)實(shí)現(xiàn)的進(jìn)步直接關(guān)系到開(kāi)發(fā)效率、運(yùn)行性能與系統(tǒng)安全。本次分論壇聚焦
    的頭像 發(fā)表于 11-20 17:24 ?913次閱讀
    開(kāi)源鴻蒙技術(shù)大會(huì)2025丨<b class='flag-5'>編譯器</b>與編程語(yǔ)言分論壇:語(yǔ)言驅(qū)動(dòng)系統(tǒng)創(chuàng)新,<b class='flag-5'>編譯</b>賦能生態(tài)繁榮

    【產(chǎn)品介紹】Modelsim:HDL語(yǔ)言仿真軟件

    概述ModelSim是業(yè)界最優(yōu)秀的HDL語(yǔ)言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)
    的頭像 發(fā)表于 11-13 11:41 ?493次閱讀
    【產(chǎn)品介紹】Modelsim:<b class='flag-5'>HDL</b>語(yǔ)言仿真軟件

    邊緣設(shè)備AI部署:編譯器如何實(shí)現(xiàn)輕量化與高性能?

    電子發(fā)燒友網(wǎng)綜合報(bào)道 AI編譯器是專(zhuān)門(mén)為人工智能(AI)和機(jī)器學(xué)習(xí)(ML)模型設(shè)計(jì)的編譯器,其核心目標(biāo)是將高級(jí)的AI模型描述(如計(jì)算圖、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu))轉(zhuǎn)換為特定硬件平臺(tái)(如CPU、GPU、FPGA
    的頭像 發(fā)表于 07-06 05:49 ?6631次閱讀

    編譯器功能安全驗(yàn)證的關(guān)鍵要素

    在汽車(chē)、工業(yè)、醫(yī)療等安全關(guān)鍵型應(yīng)用中,確保功能安全合規(guī)性需要嚴(yán)格的工具鏈驗(yàn)證。開(kāi)發(fā)安全關(guān)鍵型軟件的企業(yè)必須遵守ISO 26262、IEC 61508、ISO 62304等國(guó)際標(biāo)準(zhǔn)對(duì)編譯器工具鏈進(jìn)行全面的驗(yàn)證。
    的頭像 發(fā)表于 07-05 13:37 ?1568次閱讀

    兆松科技發(fā)布高性能RISC-V編譯器ZCC 4.0.0版本

    近日,兆松科技(武漢)有限公司(以下簡(jiǎn)稱(chēng)“兆松科技”)宣布正式發(fā)布高性能 RISC-V 編譯器 ZCC 4.0.0 版本。新版本在性能優(yōu)化、廠商自定義指令支持和軟件庫(kù)等方面實(shí)現(xiàn)全面升級(jí),并同步推出
    的頭像 發(fā)表于 06-27 14:48 ?2995次閱讀
    兆松科技發(fā)布高性能RISC-V<b class='flag-5'>編譯器</b>ZCC 4.0.0版本

    stellar studio按照說(shuō)明文檔進(jìn)行編譯器環(huán)境配置,為什么會(huì)報(bào)錯(cuò)?

    已經(jīng)是按照說(shuō)明文檔進(jìn)行編譯器環(huán)境配置,但是還是會(huì)報(bào)錯(cuò),問(wèn)題大概可能是文件系統(tǒng)操作錯(cuò)誤,無(wú)法訪問(wèn)打開(kāi)文件,看樣子像系統(tǒng)問(wèn)題,但是其他同學(xué)有和我系統(tǒng)版本號(hào)一樣的也可以編譯運(yùn)行,具體錯(cuò)誤點(diǎn)擊也無(wú)法跳轉(zhuǎn)到錯(cuò)誤位置
    發(fā)表于 06-12 07:49

    兆松科技ZCC編譯器全面支持芯來(lái)科技NA系列處理

    近日,兆松科技(武漢)有限公司(以下簡(jiǎn)稱(chēng)“兆松科技”)宣布正式發(fā)布高性能RISC-V編譯器ZCC 4.0.0版本。
    的頭像 發(fā)表于 06-11 09:56 ?1689次閱讀

    RVCT編譯器是否比GNU的編譯器的代碼執(zhí)行速度更快?

    使用FX3S遇到了RVCT編譯器的問(wèn)題。 1、在SDK的release note中有支持RVCT的描述, 但是在EZ USB Suite的設(shè)置中沒(méi)有找到RVCT的選項(xiàng), 請(qǐng)問(wèn)支持的具體版本
    發(fā)表于 05-08 07:49

    HighTec編譯器全面適配紫光同芯THA6 Gen2系列產(chǎn)品

    近日,紫光同芯與全球領(lǐng)先的汽車(chē)級(jí)C/C++編譯器供應(yīng)商HighTec共同宣布,HighTec編譯器完成對(duì)紫光同芯THA6 Gen2系列產(chǎn)品的全面適配。此次合作實(shí)現(xiàn)了從指令集優(yōu)化到功能安全的全棧支持,是國(guó)產(chǎn)高端車(chē)規(guī)芯片與國(guó)際領(lǐng)先開(kāi)
    的頭像 發(fā)表于 04-02 09:42 ?1175次閱讀

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

    Verilog HDL語(yǔ)言和C語(yǔ)言一樣也提供了編譯預(yù)處理的功能?!?b class='flag-5'>編譯預(yù)處理”是Verilog HDL
    的頭像 發(fā)表于 03-27 13:30 ?1426次閱讀
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語(yǔ)法之<b class='flag-5'>編譯</b>預(yù)處理

    一文詳解Verilog HDL

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