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 ...