[問題] Desgin Compiler addsub合成

看板Electronics作者 (小樹)時間13年前 (2011/06/09 22:01), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
我想要試著去合成一個addsub電路,Verilog寫法如下: module ADDSUB(clk,rst,A,B,Mode,Sum); input clk; input rst; input [13:0]A,B; input Mode; output reg [13:0]Sum; reg [13:0]AI,BI; always@(posedge clk or posedge rst) begin if(rst) begin Sum<= 0; AI <= 0; BI <= 0; end else begin Sum<= Mode? (AI-BI):(AI+BI); AI <= A; BI <= B; end end endmodule 事實上我希望他能夠合成出一個addsub電路,而非兩個加法器,不過卻不知道怎麼讓 DC自己和出來? 希望各位前輩能指點一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.97.177 ※ 編輯: chrispherd 來自: 163.25.97.177 (06/09 22:04)

06/09 22:49, , 1F
自己用 gate level 兜, or instantiation 一個
06/09 22:49, 1F

06/09 22:49, , 2F
Designware IP
06/09 22:49, 2F

06/10 00:01, , 3F
Sum <= AI + (BI^{14{Mode}}) + Mode;
06/10 00:01, 3F

06/10 00:03, , 4F
synthesis: designware, data_path, compile_ultra ...etc
06/10 00:03, 4F

06/13 17:07, , 5F
照你的RTL 應該是有MUX去選加法器或減法器
06/13 17:07, 5F

06/13 17:08, , 6F
但實際上 加法器~減法器 所以你會看到兩個加法器不奇怪
06/13 17:08, 6F

06/13 17:09, , 7F
所以你是希望 DC不要幫你做任何的電路簡化嗎 ?
06/13 17:09, 7F

06/13 20:27, , 8F
你的目的是什麼 ? 還有種方法是改 RTL 把不同 expression
06/13 20:27, 8F

06/13 20:28, , 9F
放在不同 module, 然後 bottom-up synthesis
06/13 20:28, 9F
文章代碼(AID): #1DyD9J71 (Electronics)