看板 Electronics 關於我們 聯絡資訊
※ 引述《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)
hisanick:哈哈 感謝,我是臨時出師的新手~~^^ 05/28 17:02