iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
Software Development

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

[Day 16] Verilog E-1 難度丁 P2海域的解謎1 - 序向邏輯電路設計 (概念想法)

  • 分享至 

  • xImage
  •  

我記得一開始有講,我覺得 Verilog 是一個畫圖軟體
(PS 昨天說要畫圖,想一想推到後面再說)

今天沒有要開 Vivado 我們講講下幾天要做的事情

P2海域就是個入門的測計,入門設計大概是:
https://ithelp.ithome.com.tw/upload/images/20220929/20135862jEO0Fa4VH1.png

那簡單的想法方向就是:
https://ithelp.ithome.com.tw/upload/images/20220929/20135862YuK2VLitFW.png

現在只是快速講講,實際還是後面詳細慢慢講


分析題目
就是看到輸入的方式與輸出的方式,舉例

我們就舉一個昨天的簡化版要設計一個:

  1. 有開關的
  2. 隨著時間向左推的 0001 → 0010 → 0100 → 1000

匯出圖形
這次很簡單 大概畫一下

https://ithelp.ithome.com.tw/upload/images/20220929/20135862YvjKU0EnX3.png


列出狀態表

大概寫一下

一開始狀態:
用畫圖的更好,但是懶得用電腦畫 就用表將就一下
https://ithelp.ithome.com.tw/upload/images/20220929/20135862Zae9wtKhF1.png


選擇 Reg

這個Reg就是大概是哪一種Reg

大概就是 時序那邊的 Counts, 如果想知道 Psoc的東西 到時再補完


設計輸出

打開 vivado 來設計

(昨天的意思意思貼一下)


module Clk_Add3(reset1,clk,Out1);
input reset1 ,clk;
output[7:0] Out1;
reg[7:0] Out1;


always@(negedge reset1 or posedge clk)
begin

if( ~reset1) begin
    Out1<=1;
end 
else begin
 
    if(Out1==8) begin
    
     end
     else begin
     
        Out1 <= Out1<<1;
        
     end

end

end
endmodule 




模擬測試

寫個 TB來測試看看

(昨天的意思意思貼一下)


module tb1();

reg reset1 ,clk;
wire[7:0] Out1;

Clk_Add3 Test1(.reset1(reset1),.clk(clk),.Out1(Out1));


initial begin
        clk<=0;reset1<=0;
    #7 reset1<=1;
    #6000 $stop;

end


always #5 clk<=~clk;

endmodule

大概這樣今天加班有點晚,中午有再想要寫甚麼,所以水一集 真是抱歉了

フタフタマルマル。さっ、そろそろ本日の艦隊勤務もおしまいですよ~。ご苦労様でした~。寝よ寝よ。提督、それじゃ。


上一篇
[Day 15] Verilog E-1 難度丁 P2海域的探路2 - 位元移位 << , >>
下一篇
[Day 17] Verilog E-1 難度丁 P2海域的解謎2 - Rs232訊號協議(分析題目 1)
系列文
超簡單的 Verilog 入門講解30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言