推 hisanick:哈哈 感謝,我是臨時出師的新手~~^^ 05/28 17:02
※ 引述《hisanick (外村尼克)》之銘言:
: 小弟我最近想打個乘法出來
: module time1(in3,in4,out3); //作in3和in4的相乘
: input [13:0]in3;
: input [13:0]in4;
: output reg [13:0]out3 ;
: reg [27:0]cc ;
: always@( *)
: begin
: cc <= in3*in4 ;
: out3 <= cc[27:14];
: end
幫你debug...
你這兩行寫得相當奇怪...是非常奇怪
完全看不懂...
input clk , n_rst ;
input [13:0]in3 ;
input [13:0]in4 ;
output [13:0]out3 ;
wire [27:0]cc ;
reg [13:0]out3 ;
assign cc = in3*in4 ;
always @ (posedge clk or negedge n_rst) begin
if(!n_rst)begin
out3 <= 'b0 ;
end
else begin
out3 <= cc[27 : 14] ;
end
end
<= 是用在 sequencial 電路...
不要用在combinational 電路...
ouput port可以描述成sequencial...
讓他合出DFF..
你的coding style還要再加油...
尤其是語法、合成的觀念...
然後名字取好一點,不要亂取...(那cc也取好一點 cc鬼才知道是什麼東西)
: endmodule
: 並且利用這種寫法來寫四次方程式,在ISE模擬時出來的值都是對的
: 但是我把它丟到design vision去做合成gate level
: compile後要存v檔時,她跑出兩種warning..
: 1 . Information: Design 'outadder' has multiply instantiated designs. (check
: design跑出來的)
: 2 指令 change_names -rule verilog -hierarchy 時
: warning :
: testLS_DW_mult_uns_4, net 'b[2]' is connecting multiple ports.
: (testLS 是我更大的module)
: .
: .
: .
: ...很多
: 3. 存v檔時
: Verilog writer has added 14 nets to module time1 using SYNOPSYS_UNCONNECTED_
: as prefix. Please use the change_names command to make the correct changes
: before invoking the verilog writer.
: 我想問的是是不是在寫verilog 而且作合成電路時
: 不可以使用 * 當作乘法
: 而是得自己寫乘法器??
: 有經驗的大大能幫我指導一下嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.144.169
※ 編輯: sasako 來自: 220.132.144.169 (05/28 09:56)