4
verilog中泛型的等價物是什麼? 例如vhdl程序員的Verilog中的泛型
entity my_entity
generic(a : integer);
port(x : in std_logic; y out std_logic);
end entity my_entity;
什麼是通用的等價物? 什麼是如果生成和生成的等價物?
verilog中泛型的等價物是什麼? 例如vhdl程序員的Verilog中的泛型
entity my_entity
generic(a : integer);
port(x : in std_logic; y out std_logic);
end entity my_entity;
什麼是通用的等價物? 什麼是如果生成和生成的等價物?
泛型在Verilog中被稱爲參數。
parameter DATA_WIDTH = 8;
parameter ADDR_WIDTH = 8;
的實例可以單獨地優化的參數值::
my_ram_impl #(
.DATA_WIDTH(16),
.ADDR_WIDTH(8)
)
ram_instance(
.clk(clk),
.addr(addr),
.data(data),
.cs(cs),
.we(we)
);
使用類似於C有條件合成這些指令:
`ifdef SYM
...
`else
...
`endif
它們由相同的線聲明的模塊內或者更靈活generate
結構如:
generate
if(cond)
...
else
...
endgenerate
這是一個如何在本例中用於生成實例化模塊的示例core_top。 NCORE是父模塊的一個參數或一個指定要實例化的核心數量的localparam。
wire clk;
wire [31:0] data_from_core[0:NCORES-1];
genvar core;
generate
for (core=0; core < NCORES; core=core+1) begin : core_gen
core_top
#(.CORE_ID (core),
.NCORES (NCORES))
u_fpgaminer_top
(.clk_in (clk),
.data_out (data_from_core[core]));
end
endgenerate
很好的答案和直接點 – CJC