久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4503|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

邊沿檢測中需要注意的細(xì)節(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-28 20:44 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
很多人看到這個(gè)標(biāo)題的時(shí)候,都會(huì)想邊沿檢測不是很簡單的嗎?有什么需要注意的?它是很簡單,只要對輸入信號進(jìn)行兩級緩存,然后通過判斷前后兩級的邏輯來決定信號的上升沿或下降沿。但你們有沒有想過當(dāng)系統(tǒng)復(fù)位時(shí)應(yīng)該給寄存器賦什么值?估計(jì)很多人都沒有想過吧,管它三七二十一,一律賦0(或1)。那恭喜你,你已經(jīng)掉進(jìn)陷阱了。什么陷阱?誤判的陷阱。舉個(gè)例子,檢測一個(gè)信號的上升沿,見如程序清單1所示:

程序清單1

/******************************************Copyright********************************************
**----------------------------------------File Infomation--------------------------------------
** FileName     :       edge_detection.v
** Author       :       CrazyBird
** Data         :       2015-10-25
** Version      :       v1.0
** Description  :       the rising edge detection of signal
**                     
************************************************************************************************/
// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on
module edge_detection
(
    input           clk,
    input           rst_n,
    input           din,
    output          pos_flag
);
//------------------------------------
// Two levels of cache on the signal
reg                 din_r1;
reg                 din_r2;
always @(posedge clk or negedge rst_n)
begin
    if(rst_n == 1'b0)
    begin
        din_r1 <= 1'b0;
        din_r2 <= 1'b0;
    end
    else
    begin
        din_r1 <= din;
        din_r2 <= din_r1;
    end
end

//------------------------------------
//  rising edge detect
assign  pos_flag = din_r1 & ~din_r2;

endmodule
//*****************************************End File**********************************************
    這是一個(gè)超級簡單的信號上升沿檢測,相信很多人也是這樣寫。但你這樣設(shè)計(jì)出來的東西是不穩(wěn)定的。為什么?從理論上分析,當(dāng)復(fù)位后,din_r1和din_r2d的值都為1'b0。如果輸入信號din為1'b1,在時(shí)鐘上升沿到來時(shí),din的值會(huì)被鎖進(jìn)din_r1即din_r1=1'b1,而din_r1前一時(shí)刻的值被鎖進(jìn)din_r2即din_r2=1'b0。此時(shí),并沒有信號的上升沿到來,而pos_flag的值為1'b1,從而導(dǎo)致第一次上升沿是誤判的。也可以從仿真波形中體現(xiàn)出來,如圖1所示。


圖1  導(dǎo)致第一次上升沿誤判

    為了避免誤判情況的出現(xiàn),我們采取措施:對于信號上升沿檢測,復(fù)位后寄存器應(yīng)都賦值為1'b1。修改后的代碼如程序清單2所示:

程序清單2

/******************************************Copyright********************************************
**----------------------------------------File Infomation--------------------------------------
** FileName     :       edge_detection.v
** Author       :       CrazyBird
** Data         :       2015-10-25
** Version      :       v1.0
** Description  :       the rising edge detection of signal
**                     
************************************************************************************************/
// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on
module edge_detection
(
    input           clk,
    input           rst_n,
    input           din,
    output          pos_flag
);
//------------------------------------
// Two levels of cache on the signal
reg                 din_r1;
reg                 din_r2;
always @(posedge clk or negedge rst_n)
begin
    if(rst_n == 1'b0)
    begin
        din_r1 <= 1'b1;
        din_r2 <= 1'b1;
    end
    else
    begin
        din_r1 <= din;
        din_r2 <= din_r1;
    end
end
//------------------------------------
//  rising edge detect
assign  pos_flag = din_r1 & ~din_r2;
endmodule
//*****************************************End File**********************************************
    仿真結(jié)果如圖2所示:


圖2  上升沿正確檢測

    同樣,對于下降沿檢測,復(fù)位時(shí)應(yīng)將寄存器都賦值為1'b0,大家可自行驗(yàn)證。



    總結(jié)一下,上升沿檢測,復(fù)位時(shí)寄存器應(yīng)賦值為1'b1;下降沿檢測,復(fù)位時(shí)寄存器應(yīng)賦值為1'b0

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 老司机狠狠爱 | 先锋av资源在线 | 美女露尿口视频 | 美日韩免费视频 | 日韩在线精品 | 黑人精品欧美一区二区蜜桃 | 久草久草久草 | 亚洲一区二区三区视频 | 国产无人区一区二区三区 | 欧美精品一区二区三区在线播放 | 久久夜色精品国产 | 中文字幕一区二区三区四区五区 | 99精品国自产在线观看 | 成人免费一级 | 精品国产精品三级精品av网址 | 免费看a| 国产精品久久久久久久免费大片 | 一区二区视频在线 | 国产精品九九视频 | 亚洲欧美精品在线 | 又爽又黄axxx片免费观看 | 亚洲永久免费 | 成人免费大片黄在线播放 | 亚洲综合无码一区二区 | 在线观看电影av | 免费福利视频一区二区三区 | 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 国产精品视频久久 | 国产色爽 | 国产激情一区二区三区 | 亚洲一区二区三区观看 | 亚洲欧美一区二区三区视频 | av中文字幕在线 | 日日射影院 | 亚洲永久入口 | 亚洲精品乱码久久久久久按摩观 | 亚洲一二三区免费 | 亚洲最大的成人网 | 日韩毛片在线免费观看 | 人人操日日干 | 四虎影音 |