數位IC設計入門-Verilog combinational logic
8 to 3 Encoder 編碼器 Behavioral Modeling (& Test Bench)
// 數位IC設計入門-Verilog combinational logic
// 8 to 3 Encoder 編碼器 Behavioral Modeling (& Test Bench)
module ENCODER(in, out, valid);
input [7:0] in;
output [2:0] out;
output valid;
reg [2:0] out;
reg valid;
always@(in)
begin
valid = 1'd1;
case(in)
8'b00000001 : out = 3'b000;
8'b00000010 : out = 3'b001;
8'b00000100 : out = 3'b010;
8'b00001000 : out = 3'b011;
8'b00010000 : out = 3'b100;
8'b00100000 : out = 3'b101;
8'b01000000 : out = 3'b110;
8'b10000000 : out = 3'b111;
default : begin
valid = 1'd0;
out = 3'b000;
end
endcase
end
endmodule
// 時間單位 100ns, 時間精確度100 ps
`timescale 100ns/100ps
module Test_bench;
//ENCODER(in, out, valid);
//input [7:0] in;
//output [2:0] out;
//output valid;
// Inputs
reg [7:0]in=0 ;
// Outputs
wire [2:0]out ;
wire valid;
// Instantiate the Unit Under Test (UUT)
//module ENCODER(in, out, valid);
ENCODER UUT (in, out, valid);
initial begin
$monitor(in, out, valid);
// Initialize Inputs
#25 in=8'b1000_0000 ;
#25 in=8'b0100_0000 ;
#25 in=8'b0010_0000 ;
#25 in=8'b0001_0000 ;
#25 in=8'b0000_1000 ;
#25 in=8'b0000_0100 ;
#25 in=8'b0000_0010 ;
#25 in=8'b0000_0001 ;
#25 in=8'b0000_0000 ;
#25 in=8'b0000_1100 ;
#25 in=8'b0100_1000 ;
end
initial
begin
#300; // 模擬終止時間 300 ns
$stop;
end
endmodule
訂閱:
張貼留言 (Atom)
2024_09 作業3 以Node-Red 為主
2024_09 作業3 (以Node-Red 為主 Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker 2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...
-
python pip 不是内部或外部命令 -- 解決方法 要安裝 Pyqt5 1. 首先,開啟命令提示字元。 2. 輸入 pip3 install pyqt5 好像不能執行 ! ! 錯誤顯示 : ‘ pip3 ’ 不是內部或外部命令、可執行的程式或批...
-
課程講義 下載 11/20 1) PPT 下載 + 程式下載 http://www.mediafire.com/file/cru4py7e8pptfda/106%E5%8B%A4%E7%9B%8A2-1.rar 11/27 2) PPT 下載...
-
• 認 識 PreFix、InFix、PostFix PreFix(前序式):* + 1 2 + 3 4 InFix(中序式): (1+2)*(3+4) PostFix(後序式):1 2 + 3 4 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言