use*_*759 5 syntax verilog vhdl
verilog中的泛型等效什么?例如
entity my_entity
generic(a : integer);
port(x : in std_logic; y out std_logic);
end entity my_entity;
Run Code Online (Sandbox Code Playgroud)
泛型相当于什么?还有if生成和for生成的等效项是什么?
泛型在Verilog中称为参数。它们在模块内通过以下行声明:
parameter DATA_WIDTH = 8;
parameter ADDR_WIDTH = 8;
Run Code Online (Sandbox Code Playgroud)
实例化可以单独优化参数值:
my_ram_impl #(
.DATA_WIDTH(16),
.ADDR_WIDTH(8)
)
ram_instance(
.clk(clk),
.addr(addr),
.data(data),
.cs(cs),
.we(we)
);
Run Code Online (Sandbox Code Playgroud)
使用类似于C的这些指令进行条件综合:
`ifdef SYM
...
`else
...
`endif
Run Code Online (Sandbox Code Playgroud)
或者,更灵活地generate
构造如下:
generate
if(cond)
...
else
...
endgenerate
Run Code Online (Sandbox Code Playgroud)