我試圖執行這個模塊,其中輸入「ins15_0」進入,如果某些條件滿足,它將運行其各自的代碼,但是當檢查語法時,我得到if行上的以下錯誤「運營商的結果=不是靜態的。」operator =的結果不是靜態的
lw : if (ins15_0 = "000000000110000") generate
step_1 : for i in 0 to 31 generate
DFF1 : DFF_MEM port map (D=>din(i),clk=>CLK ,Q=>Q(i), reset=> Reset);
end generate step_1;
dout <= x"00000" + q;
end generate lw;
sw : if (ins15_0 = "000000000110100") generate
step_2 : for i in 0 to 31 generate
DFF2 : DFF_MEM port map (D=>rt(i),clk=>CLK ,Q=>Q(i), reset=> Reset);
end generate step_2;
dout <= rt;
end generate sw;
'Case'是一個順序語句,您正在並行區域中使用它。改用'if ... generate'(你可以嵌套生成)。 – 2014-11-20 22:49:20
我試過使用if,elsifs但是它與端口映射一起動作,給我錯誤「解析錯誤,意外的PORT,期待OPENPAR或TICK或LSQBRACK」 – user998316 2014-11-20 22:51:53
「if ... generate」中沒有'elsif'。你真的在做什麼? – 2014-11-20 23:07:38