Verilog語言中如何用「case」何「if」語句分別用兩方法設計4 2解碼器

2022-01-23 09:24:29 字數 2030 閱讀 9679

1樓:匿名使用者

// 用case的方法

module decoder_4to2(

input wire [3:0] in4

output wire [1:0] out2

);always @(*) begin

case(in4)

4'b0001 : out2 = 2'b00;

4'b0010 : out2 = 2'b01;

4'b0100 : out2 = 2'b10;

4'b1000 : out2 = 2'b11;

default : out2 = 2'b00;

endcase

endendmodule

// 用if的方法

module decoder_4to2(

input wire [3:0] in4

output wire [1:0] out2

);always @(*) begin

if(in4==4'b0001) out2 = 2'b00;

else if(in4==4'b0010) out2 = 2'b01;

else if(in4==4'b0100) out2 = 2'b10;

else if(in4==4'b1000) out2 = 2'b11;

else out2 = 2'b00;

endendmodule

2樓:

case (in[3:0])

4'b1000: out[1:0] = 2'b00;

4'b0100: out[1:0] = 2'b01;

4'b0010: out[1:0] = 2'b11;

4'b0001: out[1:0] = 2'b10;

endcase

if的寫法照著上面改就行了

if (in==4'b1000)

out = 2'b00;

else if (in==4'b0100)....

verilog/fpga問題:設計乙個2-4的解碼器

3樓:請叫我準大師

module 2_4 (

clk,

rst_n,

2_data,

4_data);

input clk;

input rst_n;

input [1:0] 2_data;

output [3:0] 4_data;

always@(posedge clk, negedge rst_n)

begin

if (!rst_n)

begin

2_data<= 0;

4_data<= 0;

endelse

case (2_data)

00 :

4_data<=4'b0001;

01 :

4_data<=4'b0010;

10:4_data<=4'b0100;

11 :

4_data<=4'b1000;

default :

4_data<=4'b0000;

endcase

endendmodule

使用vhdl的case語句,設計七段解碼器程式,

verilog語言always中不完整if語句與case同時存在的問題

4樓:司馬刀劍

不是說你在**裡定義乙個reg型變數,綜合器就會綜合處乙個暫存器來,case必須在always塊裡,always裡面的被賦值變數必須是reg型,這是語法的規定,只能遵守。

寫**的時候不要加入觸發器(不要邊沿觸發),最終綜合出來的仍然是乙個組合電路。case也注意要加上default,不然會綜合乙個儲存器出來。

在Verilog語言中是什麼意思

前 用的,無法綜合的。例如 5 data in data tmp 就是延遲5個時間單位後 在進行複製。具體延遲多少,得看你的 timescale timescale n n 根據這個來看你具體延遲的時間 verilog hdl是一種硬體描述語言 hdl hardware description la...

在Verilog語言中 是什麼意思

verilog中 與 的區別 verilog中 與 的區別為 性質不同 計算結果不同 引數不同。一 性質不同。1 是位運算子,表示爛尺是按位與。2 是邏輯運算子,表示是邏輯與。二 計算結果不同。1 的計算結果為十進位制數。2 的計算結果為true或false。三 引數不同。1 的引數為進製數,可以是...

Verilog程式流水燈,如何用verilog寫10個流水燈

看你這 真的很蛋疼,我給你寫乙個 module led clk,rst,led0,led1 input clk,rst output led0,led1 reg 31 0 cnt led0 reg 31 0 cnt led1 reg led0,led1 begin if rst begin cnt ...