考慮以下模塊:合成器如何決定bitwdith的中間結果?
module power(input [11-1:0] xi,xq,output [22-1:0] y);
assign y = xi*xi + xq*xq;
endmodule
我知道我的一個任務實際上是分解的3個步驟:2米的廣場和一個加法。我的問題是合成器如何決定中間步驟xi*xi
和xq*xq
的位寬?
我注意到,運行邏輯equivelance電路(LEC)時,上面的代碼,這會造成麻煩,只能通過分解單分配如下解決三個任務:
module power(input [11-1:0] xi,xq,output [22-1:0] yy);
wire [21-1:0] pi,pq;
assign pi = xi*xi;
assign pq = xq*xq;
assign yy = pi+pq;
endmodule
請刪除VHDL標籤。 – JHBonarius
我認爲任何HDL語言都是同樣的問題 – Mortada
馬修泰勒的答案表明這兩個HDL的問題並不完全相同。 – user1155120