我們?cè)購(gòu)膶?duì)可綜合代碼的支持角度看看SystemVerilog相比于Verilog的優(yōu)勢(shì)。針對(duì)硬件設(shè)計(jì),SystemVerilog引入了三種進(jìn)程always_ff,always_comb和always_latch。always_ff用于描述時(shí)序邏輯,對(duì)應(yīng)FPGA中的觸發(fā)器,其內(nèi)部應(yīng)使用非阻塞(<=)賦值方式,因?yàn)樗M的正是觸發(fā)器傳輸數(shù)據(jù)的方式。always_comb用于描述純組合邏輯,其內(nèi)部使用阻塞賦值方式,采用了隱式的全變量敏感列表。always_latch用于描述鎖存器。FPGA設(shè)計(jì)中一般不建議使用鎖存器。這樣,三種進(jìn)程對(duì)應(yīng)三種場(chǎng)景,無論是設(shè)計(jì)者還是工具本身對(duì)電路意圖都非常清晰。在Verilog中,只有always,換言之,這三種進(jìn)程都能通過always實(shí)現(xiàn)。例如:
always @(posedge clk) 對(duì)應(yīng) always_ff@(posedge clk)
always @* 對(duì)應(yīng)always_comb或always_latch
SystemVerilog引入了轉(zhuǎn)換操作符,支持類型轉(zhuǎn)換、位寬轉(zhuǎn)換和符號(hào)轉(zhuǎn)換。
類型轉(zhuǎn)換:casting_type’(expression)
位寬轉(zhuǎn)換:size’(expression)
符號(hào)轉(zhuǎn)換:signed’(expression) 和unsigned’(expression)
再?gòu)?a target="_blank">端口映射看,SystemVerilog支持Verilog傳統(tǒng)的一一映射方式,如下圖所示代碼第3行。同時(shí)也支持自動(dòng)匹配,如代碼第5行,.clk和.rst會(huì)自動(dòng)與名為clk和rst的信號(hào)相連。而更為簡(jiǎn)潔的是代碼第7行所示的.*連接方式,這表明所有端口將自動(dòng)與其名字相同的信號(hào)相連。盡管這三種方式都是可綜合的,但從代碼風(fēng)格角度而言,仍然建議采用第3行所示方式。在描述測(cè)試文件時(shí),可采用第7行所示方式。
在Verilog中,給一個(gè)信號(hào)所有位賦值為1,需要采用如下圖所示方式,而SystemVerilog可直接采用下圖代碼第12行所示方式。同時(shí)此方式還適用于賦值全0、全X和全Z。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603385 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110100 -
System
+關(guān)注
關(guān)注
0文章
165瀏覽量
36943 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61155
原文標(biāo)題:SystemVerilog不只是用于驗(yàn)證(2)
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論