省流:不同的公司風(fēng)格不同,都會(huì)使用。
數(shù)字電路設(shè)計(jì)主要就是,選擇器、全加器、比較器,乘法器,幾個(gè)常用邏輯門,再加個(gè)D觸發(fā)器,電路基本都能實(shí)現(xiàn)了。
切換到具體語(yǔ)法System Verilog本來(lái)就是Verilog的語(yǔ)法擴(kuò)展,所以Verilog支持的SV都支持。
組合邏輯用assign是同樣的,用always_comb代替always @*。
時(shí)序邏輯用always_ff @(posedge clk or negedge rst_n)代替always @(posedge clk or negedge rst_n)
信號(hào)聲明logic代替wire/reg。不用再繁瑣的區(qū)分?jǐn)?shù)據(jù)類型。
端口聲明可以用多維數(shù)組。一些處理用generate for不要太爽。
以上這幾條改變不大,可以無(wú)縫適應(yīng)。
接口Interface
SystemVerilog提供了一個(gè)新的、高層抽象的模塊連接,這個(gè)連接被稱為接口(Interface)。它可以將常用的比較規(guī)范的端口定義出來(lái),方便集成連接。
舉個(gè)例子,首先定義一組interface,文件為interface.vh
interface chip_bus (input logic clock, resetn); logic interrupt_req, grant, ready; logic [31:0] address; wire [63:0] data; modport master (input interrupt_req, input address, output grant, ready, inout data, input clock, resetn); modport slave (output interrupt_req, output address, input grant, ready, inout data, input clock, resetn); endinterface然后在子模塊中就可以include使用這一組定義。
`include "interface.vh" module primary( chip_bus.mater local_bus, chip_bus.slave primary_local_bus, input clock, input resetn ); endmodule `include "interface.vh" module secondary( chip_bus.slave local_bus, chip_bus.master secondary_local_bus, `ifdef FPGA input fpga_clk, `endif input clock, input resetn ); endmodule
最后在top中例化兩個(gè)子模塊,top上也可以定義interface,直接連接到子模塊,兩個(gè)子模塊之間的interface連接在頂層定義一個(gè)用于連線的interface。
`include "interface.vh" module top ( chip_bus.master secondary_local_bus, chip_bus.slave primary_local_bus, `ifdef FPGA input fpga_clk, `endif input clock, input resetn ); chip_bus local_bus(); primary u_primary(/*autoinst*/ .local_bus (local_bus.master ), //interface//ahb_bus.mater .primary_local_bus (primary_local_bus ), //interface//axi_bus.slave .clock (clock ), //input .resetn (resetn ) //input ); secondary u_secondary(/*autoinst*/ .local_bus (local_bus.slave ), //interface//ahb_bus.slave .secondary_local_bus (secondary_local_bus ), //interface//axi_bus.master `ifdef FPGA .fpga_clk (fpga_clk ), //input `endif .clock (clock ), //input .resetn (resetn ) //input ); endmodule使用interface可以提高集成的效率,不容易出錯(cuò),方便檢視。 當(dāng)然要是問(wèn)我推薦用SV還是Verilog,我建議是遵守公司代碼規(guī)范,公司讓用啥就用啥。
審核編輯:劉清
-
比較器
+關(guān)注
關(guān)注
14文章
1652瀏覽量
107249 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110135 -
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
164瀏覽量
47932 -
數(shù)字電路
+關(guān)注
關(guān)注
193文章
1606瀏覽量
80658
原文標(biāo)題:現(xiàn)在公司里做設(shè)計(jì)用SV還是Verilog?
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論