iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Software Development

超簡單的 Verilog 入門講解系列 第 8

[Day 08] Verilog E-1 難度丁P1海域的解謎3 - 簡單的向量操作1

  • 分享至 

  • xImage
  •  

我們來講講一些數字的講法吧
比如說: 14 = 0x0E = { 4'b1110 }

4'b1110 就是 bin 的表示法
4是指 4個 bit ,然後分別是:
bit 3 = 1
bit 2 = 1
bit 1 = 1
bit 0 = 0

而 {} 就是連接運算子,可以連接多個運算元
舉個例子:
4'b1110 = { 2'b11 , 2'b10 }

在 verilog 中 我們可以用 assign來處理
再講一次: assign 輸出訊號 = 訊號跟運算子的組合

assign Out1 = { 2'b11 , 2'b10 } ;

我們拿之前的程式改成 Out1 為向量的方式

module Test_gate1(A,B,Out1,Out2);
input A , B ;
output[2:0] Out1;
output[4:0] Out2;


and(Out1[0],A,B); 
or(Out1[1],A,B); 
xor(Out1[2],A,B); 

assign Out2 = { A,B ,Out1 };


endmodule

tb為:

module tb1();

reg A_in , B_in;
wire[2:0] out_o1 ;
wire[4:0] out_o2;

Test_gate1 test(
.A(A_in),
.B(B_in),
.Out1(out_o1),
.Out2(out_o2)
);

initial 

begin

A_in = 0 ;
B_in = 0 ;
# 100;

A_in = 1 ;
B_in = 0 ;
# 100;

A_in = 0 ;
B_in = 1 ;
# 100;

A_in = 1 ;
B_in = 1 ;
# 100;

end



endmodule

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20220921/20135862pIa4MGNH3r.png

可以比對一下
https://ithelp.ithome.com.tw/upload/images/20220921/20135862vrm53PQtlk.png

最近的步調放得有點慢,因為我覺得前面能夠理解比較重要
接下來會講 always

明天見~


上一篇
[Day 07] Verilog E-1 難度丁P1海域的解謎2 - 內建簡單的 Gate 程式
下一篇
[Day 09] Verilog E-1 難度丁 P1王點的消血1 - always@(事件1 or ....) 1. 簡單的說明
系列文
超簡單的 Verilog 入門講解30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言