用Verilog實現資料的加法求和校驗

時間 2021-05-23 04:13:13

1樓:公羊頤

你自己也不分析一下,這其實就是奇校驗。。。這下知道咋做了吧!!

2樓:

**如下,供參考。

reg [4:0] byte_cnt;

di; ///[159:0]

di_v; //bit, 是一個高電平脈衝,表示di的有效時刻。

do; //7:0

do_v; //bit

clk; //cycl 6us

d_chk;//[7:0] data to checksum

d_sum;//7:0]

always@(*)

case(byte_cnt[4:0])

5'd01: d_chk = di[( 0+1)*8-1 : 0*8];

5'd02: d_chk = di[( 1+1)*8-1 : 1*8];

....

5'd20: d_chk = di[(19+1)*8-1 :19*8];

default : d_chk = di[(00+1)*8-1 : 0*8];

endcase

// byte_cnt di_v

always@(posedge clk or negedge rst)

if (!rst)

byte_cnt <= 5'b0;

else if (di_v && byte_cnt == 5'b0)

byte_cnt <= 5'b1;

else if (byte_cnt > 5'd21)

byte_cnt <= 5'b0;

else

byte_cnt <= byte_cnt + 1'b1;

//do_v

always@(posedge clk or negedge rst)

if (!rst)

do_v <= 1'b0;

else if (byte_cnt != 5'b0)

do_v <= 5'b1;

else

do_v <= 1'b0;

//do

always@(posedge clk or negedge rst)

if (!rst)

do <= 7'b0;

else if (byte_cnt == 5'd21)

do_v <= d_sum;

else if (byte_cnt == 5'd0)

do <= 7'b0;

else

do_v <= d_chk;

//d_sum

always@(posedge clk or negedge rst)

if (!rst)

d_sum <= 7'b0;

else if (byte_cnt == 5'd0)

d_sum <= 7'b0;

else

d_sum <= d_sum + d_chk;

3樓:匿名使用者

sum<=fifo0^fifo^...^fifo19;

verilog可以實現3個數一起相加嗎

4樓:匿名使用者

可以實現3個數一起相加,綜合之後,可由兩個加法器來實現。

5樓:匿名使用者

module(input[7:0]in1,in2,in3,output[7:0]out1);wire[7:

0]w;assignw=in1>in2?in2:in1;assignout1=w

6樓:竇碩伏曼雲

module add(a,b,cin,cout);

input cin;//進位輸

入input[3:0] a;//四位輸入

output[3:0]b;//四位輸出

output cout;//進位輸出

assign =a+2'd2+cin;

endmodule

圖是**的,為了弄你這個又花去我蠻多時間的,***。

用verilog編寫一個最簡單的加減乘除的計算器的程式

7樓:

verilog是有加法器乘法器的。也直接識別 + - * / 符號。

module kjasdja(a,option,b,result);

input option,a,b;

output result;

always @(a,b,option)

begin

result_r=0; //結果暫存器清零

case(option)

+:result_r=a+b;

-:result_r=a-b;

*:result_r=a*b;

/:result_r=a/b;

assign result =result_r;

endmodule

大概演算法就這樣。寫的倉促,語法可能有誤。另外除法reg型別只能儲存整數部分,小數通過移位操作實現,比較麻煩。比如3/5=0.6

做的時候先3=30,然後30/5=6,然後對6在數碼管的顯示進行調整就好。把6顯示在小數點後面1位就好

verilog裡面,輸入為3組3bit資料,如何操作使得輸出

沒明白你的意思,是不是知道a 2 0 b 2 0 c 2 0 可以d 通訊工程要學計算機程式設計麼?工科類的都至少要學一種計算機語言,最多的是學必修c,選修c 通訊和計算機其實是很接近的,2個學科的重疊部分很多,我本科就是通訊的。c語言不難,各類語言也可以觸類旁通,不要擔心。工科的學生必須學一門程式...

資料結構用什麼語言都可以實現嗎,資料結構 各程式語言是通用的嗎?

學語言,是學怎麼說話 學資料結構,是學怎麼把話說得有條有理 這是不矛盾的。 都可以,資料結構對程式設計有很打的幫助,合理的採用資料結構可以優化程式,優化演算法,提高程式設計能力等。 學資料結構 通俗點說就是 學演算法 資料結構 各程式語言是通用的嗎? 沃驕 資料結構對於各程式語言都是可以用的。資料結...

用verilog寫8位迴圈移位器

module barrel org s,a p,b p input 2 0 s input 7 0 a p input 7 b p reg 7 0 b p always a p or s begin case s 3 b000 begin b p a p end3 b001 begin b p 7 ...