[問題] Quartus_verilog 為什麼輸出的波型是錯的
各位大哥
可不可以幫小弟看一下這個程式碼,為什麼出輸波型是錯的?
小弟我找了好久也找不出來..XD
這程式的義意是我要算1- (2*|x-a|/b)
但這不可能在verilog上run所以全乘512
得512-(1024*|x-a|/b)
^^^^^^^^^^^^^^^^^^^^^^^^ 這程式主要是要算這個 ^^
幫小弟解答出來的二百P幣 ^^
<(_ _)>
----
這個
input的
a是亂數
b是亂數的2的次方數
x是亂數
而在輸出時的m是錯的
out_bi也是錯的
ps. out_bi是取b的次方數
ex:
input ==> a=19,b=16,x=21時;
out ==> out_bi=3,m=0; (錯誤了)
應該====> out_bi=4,m=320;(正確的)
-------------
//以下為程式碼;
module modtest(
input clock,
input [4:0] x,
input [4:0] a,b,
output [12:0] m,
output out_f_1,out_f_2,out_f_3,out_f_4
);
reg [12:0] x_1;
reg out_1,out_2,out_3,out_4;
reg nop;
reg [4:0] bi;
reg [31:0] abslution_xa;
always@(posedge clock)
begin
integer i;
for(i=0;i<5 ;i=i+1)
begin
if(b[i]==1)
begin
bi=i;
end
else
begin
nop=nop+1;
end
end
if((x-a)>=0)
begin
abslution_xa=x-a;
if((((abslution_xa<<4'b1010))>>bi)>=9'b100000000)
begin
x_1=0;
out_1=1;
out_2=0;
out_3=0;
out_4=0;
end
else
begin
x_1=9'b100000000-(((abslution_xa<<4'b1010))>>bi);
out_1=0;
out_2=1;
out_3=0;
out_4=0;
end
//multi=2^9
end
else
begin
abslution_xa=a-x;
if(((((abslution_xa)<<4'b1010))>>bi)>=9'b100000000)
begin
x_1=0;
out_1=0;
out_2=0;
out_3=1;
out_4=0;
end
else
begin
x_1=9'b100000000-((((abslution_xa)<<4'b1010))>>bi);
out_1=0;
out_2=0;
out_3=0;
out_4=1;
end
end
end
assign m=x_1;
assign out_f_1=out_1;
assign out_f_2=out_2;
assign out_f_3=out_3;
assign out_f_4=out_4;
endmodule
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.216.71
※ 編輯: psw 來自: 140.116.216.71 (04/09 20:04)
※ 編輯: psw 來自: 140.116.216.71 (04/09 20:05)
推
04/09 20:47, , 1F
04/09 20:47, 1F
→
04/09 20:48, , 2F
04/09 20:48, 2F
因為有if 要配上一個else 但else不知道要算什麼,就用nop
→
04/09 20:48, , 3F
04/09 20:48, 3F
是的
※ 編輯: psw 來自: 140.116.216.71 (04/09 20:55)
推
04/09 21:11, , 4F
04/09 21:11, 4F
如果沒配上有可能會產生Latch,不是嗎?
→
04/09 21:13, , 5F
04/09 21:13, 5F
※ 編輯: psw 來自: 140.116.216.71 (04/09 21:14)
→
04/09 21:14, , 6F
04/09 21:14, 6F
推
04/09 21:16, , 7F
04/09 21:16, 7F
推
04/09 21:18, , 8F
04/09 21:18, 8F
→
04/09 21:19, , 9F
04/09 21:19, 9F
→
04/09 21:20, , 10F
04/09 21:20, 10F
推
04/09 21:45, , 11F
04/09 21:45, 11F
嘖嘖...LUCK大你真專業..( ̄▽ ̄#)﹏﹏
※ 編輯: psw 來自: 140.116.216.71 (04/09 22:04)
推
04/09 22:09, , 12F
04/09 22:09, 12F
問題還沒解決...〒△〒
推
04/09 22:30, , 13F
04/09 22:30, 13F
→
04/09 22:31, , 14F
04/09 22:31, 14F
※ 編輯: psw 來自: 140.116.216.71 (04/09 23:13)
推
04/09 23:22, , 15F
04/09 23:22, 15F
→
04/09 23:23, , 16F
04/09 23:23, 16F
→
04/10 00:16, , 17F
04/10 00:16, 17F
→
04/10 00:18, , 18F
04/10 00:18, 18F
→
04/10 00:19, , 19F
04/10 00:19, 19F
這樣清楚了嗎? ^^
可是還是有錯誤 XD..
※ 編輯: psw 來自: 140.116.216.71 (04/10 00:53)
※ 編輯: psw 來自: 140.116.216.71 (04/10 00:54)
→
04/10 07:36, , 20F
04/10 07:36, 20F
這位tk大大,我改了,不知道這樣可不可以?不知道你覺得哪裡有不普的地方? <(_ _)>
※ 編輯: psw 來自: 140.116.216.71 (04/10 10:11)
※ 編輯: psw 來自: 140.116.216.71 (04/10 10:25)
推
04/10 10:55, , 21F
04/10 10:55, 21F
→
04/10 10:55, , 22F
04/10 10:55, 22F
→
04/11 11:26, , 23F
04/11 11:26, 23F
→
08/13 18:58, , 24F
08/13 18:58, 24F
→
09/17 22:53, , 25F
09/17 22:53, 25F
→
11/11 15:45, , 26F
11/11 15:45, 26F
→
01/04 22:09,
7年前
, 27F
01/04 22:09, 27F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):