欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
跨時(shí)鐘域信號的處理方法

說(shuō)到同步器就得先說(shuō)亞穩態(tài)

在Digital Systems Engineering一書(shū)中,亞穩態(tài)是這么定義的
When sampling a changing data signal with a clock ... the order of the events determines the outcome.The smaller the time difference between the events, the longer it takes to determine which came first.When two events occur very close together, the decision process can take longer than the time allotted,and a synchronization failure occurs.
亞穩態(tài)將導致下一級輸入為未知的狀態(tài)。
為了防止出現亞穩態(tài)傳輸到下一級就要使用同步器了。
在Digital Systems Engineering一書(shū)中,同步器是這么定義的
A synchronizer is a device that samples an asynchronous signal and outputs a version of the signal that has transitions synchronized to a local or sample clock.
最常見(jiàn)的就同步器就是兩級同步。
在使用兩級同步的時(shí)候得注意被采樣信號的寬度必須大于采樣時(shí)鐘的周期,不然就會(huì )出現下圖的問(wèn)題,漏采樣。


換句話(huà)說(shuō),慢時(shí)鐘域的信號同步到快時(shí)鐘域兩級同步?jīng)]問(wèn)題,快到慢的就可能會(huì )出現問(wèn)題。

快時(shí)鐘域信號到慢時(shí)鐘域有可能的情況是:

快時(shí)鐘域信號寬度比慢時(shí)鐘信號周期窄,導致漏采。

解決的方法有:

1.將快時(shí)鐘域信號延長(cháng),至少有慢時(shí)鐘周期的一到兩個(gè)周期寬

2. ? 使用反饋的方法,快時(shí)鐘域信號有效直到慢時(shí)鐘域有反饋信號,表示已經(jīng)正確采樣此信號,然后快時(shí)鐘域信號無(wú)效。

通過(guò)反饋的方式很安全,但是從上圖可以看出來(lái)延時(shí)是非常大的。慢時(shí)鐘采快時(shí)鐘信號,然后反饋信號再由快時(shí)鐘采。

以上是簡(jiǎn)單的單個(gè)信號同步器的基本方法。

多個(gè)信號跨時(shí)鐘域

多個(gè)控制信號跨時(shí)鐘域僅僅通過(guò)簡(jiǎn)單的同步器同步有可能是不安全的。

簡(jiǎn)單舉例,b_load和b_en同步至a_clk時(shí)鐘域,如果這兩個(gè)信號有一個(gè)小的skew,將導致在a_clk時(shí)鐘域中兩個(gè)信號并不是在同一時(shí)刻起作用,與在b_clk中的邏輯關(guān)系不同。

解決的方法應該比較簡(jiǎn)單,就是將b_load和b_en信號在b_clk時(shí)鐘域中合并成一個(gè)信號,然后同步至a_clk中。

如果遇到不能合并的情況,如譯碼信號。如下圖:

如果Bdec[0]、bdec[1]間存在skew將導致同步至a_clk中后譯碼錯誤,出現誤碼。在這種情況下,建議加入另一個(gè)控制信號,確保 bdec[0]、bec[1]穩定時(shí)采。例如在bdec[0]、bec[1]穩定輸出后一到兩個(gè)周期b_clk域輸出一個(gè)en信號,通知a_clk域此時(shí) 可以采bdec[0]、bec[1]信號。這樣可確保正確采樣。

數據路徑同步

對數據進(jìn)行跨時(shí)鐘域處理時(shí),如果采用控制信號同步的方式進(jìn)行處理的話(huà),將是非常浩大的工程,而且是不安全的。

簡(jiǎn)單來(lái)說(shuō),數據同步有兩種常見(jiàn)的方式:

1.握手方式

2.FIFO

簡(jiǎn)要說(shuō)下握手方式,無(wú)非就是a_clk域中首先將data_valid信號有效,同時(shí)數據保持不變,然后等待b_clk中反饋回采樣結束的信號,然后 data_valid信號無(wú)效,數據變化。如有數據需要同步則重復上述過(guò)程。握手方式傳輸效率低,比較適用于數據傳輸不是很頻繁的,數據量不大的情況。

FIFO則適合數據量大的情況,FIFO兩端可同時(shí)進(jìn)行讀/寫(xiě)操作,效率較高。而且如果控制信號比較多,也可采用fifo方式進(jìn)行同步,將控制信息與數據打包,寫(xiě)入FIFO,在另一端讀取,解碼,取得數據和控制信息。

----------------------------------------------------------------------------------------------------------

舉例:

異步時(shí)鐘脈沖同步的實(shí)現


設計代碼:

module edge_detect(
? ? ? ? ? ? ? ? ? ?input sclk_1,//100M
? ? ? ? ? ? ? ? ? ?input sclk_2,//50M
? ? ? ? ? ? ? ? ? ?input p_in,
? ? ? ? ? ? ? ? ? ?output p_out
? ? ? ? ? ? ? ? ? ?);

? ?reg p_in_reg=0;
? ?reg dly1,dly2,dly3;
? ?wire mux_2; ? ?//組合邏輯產(chǎn)生毛刺,p_in沒(méi)有和sclk_1 同步
? ?assign mux_2 = (p_in==1'b1)? (~p_in_reg):p_in_reg;

? ?always @(posedge sclk_1)
? ? ? ?p_in_reg <=>

? ?always @(posedge sclk_2)
? ? ? ?{dly3,dly2,dly1} <=>

? ?assign p_out = dly3 ^ dly2;

endmodule

//仿真tb

`timescale 1ns/1ps
module edge_detect_tb;
? ?reg sclk_1,sclk_2;
? ?reg p_in;
? ?reg p_in_r;//消除mux_2中的毛刺

? ?wire p_out;

? ?initial sclk_1 = 1;
? ?//always #5 sclk_1 = ~sclk_1;
? ?always #20 sclk_1 = ~sclk_1;

? ?initial sclk_2 = 1;
? ?always #10 sclk_2 = ~sclk_2;

? ?//pin和sclk_1 進(jìn)行同步
? ?always @(posedge sclk_1)
? ? ? ?p_in_r <=>in;

? ?initial begin
? ? ? ?p_in = 0;
? ? ? ?p_in_r = 0; ? ? ? ?#200;
? ? ? ?@(posedge sclk_1)
? ? ? ?p_in = 1;
? ? ? ?@(posedge sclk_1)
? ? ? ?p_in = 0; ? ? ? ?#200;
? ? ? ?@(posedge sclk_1)
? ? ? ?p_in = 1;
? ? ? ?@(posedge sclk_1)
? ? ? ?p_in = 0;
? ?end

? ?edge_detect edge_detect_inst(
? ? ? ? ? ? ? ? ? ?.sclk_1(sclk_1),//100M
? ? ? ? ? ? ? ? ? ?.sclk_2(sclk_2),//50M
? ? ? ? ? ? ? ? ? ?.p_in(p_in_r),
? ? ? ? ? ? ? ? ? ?.p_out(p_out)
? ? ? ? ? ? ? ? ? ?);
endmodule

//這里使用的是run.do腳本仿真,不需要再quartus建立工程了,直接用modelsim就可以了?
//run.do腳本代碼

quit -sim.main clear

vlib work

vlog edge_detect_tb.vvlog ./../src/edge_detect.vvsim -voptargs=+acc work.edge_detect_tbadd wave edge_detect_tb/edge_detect_inst/*

run 1us

根據圖示很容易就能寫(xiě)出代碼,?
需要注意的是?
組合邏輯MUX_2的變化是和p_in有關(guān),所以輸入信號p_in要同步輸入時(shí)鐘,消除組合邏輯中產(chǎn)生的毛刺

具體仿真效果可以動(dòng)手做一下,不做永遠不知道哪里會(huì )出錯

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
FPGA基礎之脈沖邊沿檢測原理verilog版本
FPGA復位信號設計討論
同步復位,異步復位以及異步復位同步釋放
從計數器到分頻電路(完結)
RTL概念與常用RTL建模
FPGA復位的正確打開(kāi)方式
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久