iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
Software Development

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

[Day 22] Verilog E-1 難度丁 P2海域的消血2 - Rs232訊號協議 Data delay 再講一次 ( 設計輸出1.5 )

  • 分享至 

  • xImage
  •  

仔細講一下 Data_Previous1 <= Data1;

https://ithelp.ithome.com.tw/upload/images/20221005/201358627QungFt0UH.png

我們來寫個範例

設計上來講就是一個

輸出 Out1<=Date;

https://ithelp.ithome.com.tw/upload/images/20221005/201358626LZ4Cgu1zO.png


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

always@(negedge reset1 or posedge clk)
begin

if( ~reset1) begin
    Out1<=0;
end
else begin
    Out1<=Date;
end


end

endmodule 

tb

一開始 reset 開啟之後,每到一個
posedge clk 就是 clk 到 High

設定上:
always #10 Date<=~Date;
always #5 clk<=~clk;


module tb1();

reg reset1 ,clk ;
reg  Date;
wire Out1;

Clk_Add1 Clk_test(.reset1(reset1), .Date(Date) ,.clk(clk),.Out1(Out1));


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

end

always #10 Date<=~Date;
always #5 clk<=~clk;

endmodule


https://ithelp.ithome.com.tw/upload/images/20221005/20135862wPayB187JT.png

有注意到嗎? 我們是設定的是 Clk跟 DATA是對到的
所以 Clk 下緣 → Data 輸出

https://ithelp.ithome.com.tw/upload/images/20221005/20135862N9Gh8EN3Ob.png

然後我們的觸發是 Clk的上緣,那我們拿到的 Data 就是上一筆的中間

https://ithelp.ithome.com.tw/upload/images/20221005/20135862c05Du3NEPv.png

所以在這個案例中posedge clk 配合 Out1<=Date; 就是上一筆的中間

我們假設 設定成 negedge clk 配合 Out1<=Date;


module Clk_Add1(reset1,Date,clk,Out1);
input reset1 ,clk;
input  Date;
output Out1;
reg Out1;

always@(negedge reset1 or negedge clk) 
begin 

if( ~reset1) begin
    Out1<=0;
end
else begin
    Out1<=Date;
end


end

endmodule 

tb


module tb1();

reg reset1 ,clk ;
reg  Date;
wire Out1;

Clk_Add1 Clk_test(.reset1(reset1), .Date(Date) ,.clk(clk),.Out1(Out1));


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

end

always #10 Date<=~Date;
always #5 clk<=~clk;

endmodule


結果如下

https://ithelp.ithome.com.tw/upload/images/20221005/20135862dPXJasVmoT.png

觸發在 clk下緣,那 Data 剛好發射,那就是同步了

https://ithelp.ithome.com.tw/upload/images/20221005/201358624tw4nppLUl.png


上一篇
[Day 21] Verilog E-1 難度丁 P2海域的消血1 - Rs232訊號協議 等待到Start (設計輸出1 )
下一篇
[Day 23] Verilog E-1 難度丁 P2海域的消血3 - Rs232訊號協議 讀取第一個資料 b0 ( 設計輸出2 )
系列文
超簡單的 Verilog 入門講解30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言