我尝试使用类型转换方法将多个位转换为单个位,但是lint检查器(LEDA)不允许[0:0]
并将其指向错误。 [0:0]
是否仍然表示数组?
使用的代码:
module xyz(
input x,
input rst,
input din,
output reg dout
);
logic [1:0] i_clk;
logic [0:0] clk;
assign i_clk = logic'(x );
assign clk = logic'(i_clk);
always_ff @(posedge clk) begin
if (rst)
dout <= '0;
else
dout <= din;
end
endmodule
LEDA Design checker命令行:
leda -top xyz filename.v -config leda_config.tcl +v2k -sverilog
leda_config.tcl:
rule_deselect -all rule_select -rule W450
错误看起来像:
Multi-bit expression (e.g., a[2:0]) used as clock
答案 0 :(得分:0)
许多工具在logic clk
与logic [0:0] clk
方面存在问题。从技术上讲,前者是标量变量,后者是一个元素的数组,不幸的是,许多工具错误地允许您引用clk[0]
或clk[0:0]
,即使它被声明为{{1因此,工具对不同声明或引用的反应方式变得混乱。