iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
Software Development

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

[Day 30] Verilog E-1 難度丁 - P2 結尾

  • 分享至 

  • xImage
  •  

感謝看到這的,希望對觀看的各位有些心得跟想法(應該有看到寫錯一堆東西... 我會慢慢修正)

Verilog 的最初的想法就是幾個

  1. 想清楚題目是甚麼
  2. 將它畫出來
  3. 再來就是用程式碼慢慢匯出來

然後幾個要記得

阻隔指定(=)與非阻隔指定(<=)

想一下這兩個的差別

1.阻隔指定,是有順序性的

Data_input[26:0] =Data_input[27:1];
Data_input[27] =Data_input[0];

2.非阻隔指定,沒有順序性的

Data_input[26:0] <=Data_input[27:1];
Data_input[27] <=Data_input[0];

assign 要配 wire

assign 就是接線, 接的位置 一定是線路 wire
將 input[0] 接到 Data

reg[10:0] input;
wire Data;

assign Data = input[0];

reg 可以配合 always 與 reg

大致上組成是這樣



always@(negedge reset1 or posedge clk)
begin

if( ~reset1) begin
   
end
else begin

   case (條件設定)
   條件1:
       敘述執行方式1
       
   條件2:
       敘述執行方式2
     .
     .
     .
     .
     .
   default:
   
       默認執行
       
   endcase
   
end


end

endmodule 

然後設定 Reg 要立即初始化


// 設定 Reg
reg test;

always@(negedge reset1 or posedge clk)
begin

if( ~reset1) begin

   // 立即初始化
   test<=0;
end
else begin

   case (條件設定)
   條件1:
       敘述執行方式1
       
   條件2:
       敘述執行方式2
     .
     .
     .
     .
     .
   default:
   
       默認執行
       
   endcase
   
end


end

endmodule 

大致就是這樣,希望對各位有點初解,如果有錯歡迎糾正

謝謝各位 各位後會有期~


上一篇
[Day 29] Verilog E-1 難度丁 P2海域的斬殺4 - Rs232訊號協議 TB設計4(設計右移)
系列文
超簡單的 Verilog 入門講解30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言