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

標(biāo)題: 門控時(shí)鐘和時(shí)鐘使能的理解 [打印本頁]

作者: 51黑fan    時(shí)間: 2016-1-31 04:28
標(biāo)題: 門控時(shí)鐘和時(shí)鐘使能的理解
最后的DEMO直觀的描述了使能時(shí)鐘的使用,可以一看


門控時(shí)鐘
時(shí)鐘使能電路是同步設(shè)計(jì)的重要基本電路,在很多設(shè)計(jì)中,雖然內(nèi)部不同模塊的處理速度不同,但是由于這些時(shí)鐘是同源的,可以將它們轉(zhuǎn)化為單一的時(shí)鐘電路處理。在FPGA的設(shè)計(jì)中,分頻時(shí)鐘和源時(shí)鐘的skew不容易控制,難以保證分頻時(shí)鐘和源時(shí)鐘同相。故此推薦采用使用時(shí)鐘使能的方法,通過使用時(shí)鐘使能可以避免時(shí)鐘“滿天飛”的情況,進(jìn)而避免了不必要的亞穩(wěn)態(tài)發(fā)生,在降低設(shè)計(jì)復(fù)雜度的同時(shí)也提高了設(shè)計(jì)的可靠性。
門控時(shí)鐘 Verilog示例代碼:
input wr_n; //寫使能信號,低有效
input cs_n; //片選信號,低有效
input[7:0] db; //輸入數(shù)據(jù)總線

output db_r; //鎖存輸出

reg db_r; //輸入數(shù)據(jù)寄存器
wire d_clk; //門控時(shí)鐘信號

assign d_clk = wr_n || cs_n;

always @ (posedge d_clk) //門控時(shí)鐘上升沿
db_r <= db; //鎖存輸入數(shù)據(jù)

RTL Viewer:





組合邏輯中多用門控時(shí)鐘,一般驅(qū)動(dòng)門控時(shí)鐘的邏輯都是只包含一個(gè)與門(或門)。如果有其它的附加邏輯,容易因競爭產(chǎn)生不希望的毛刺。

使能時(shí)鐘

Verilog示例代碼:
input clk; //50MHz時(shí)鐘信號
input wr_n; //寫使能信號,低有效
input cs_n; //片選信號,低有效
input[7:0] db; //數(shù)據(jù)總線

output db_r;
reg db_r; //輸入數(shù)據(jù)寄存器
wire en; //使能信號

assign en = ~wr_n && ~cs_n;

always @ (posedge clk) //全局時(shí)鐘上升沿
if(en) //使能鎖存輸入
db_r <= db; //鎖存輸入數(shù)據(jù)

RTL Viewer:


使能時(shí)鐘這要是用于時(shí)序邏輯中,比門控時(shí)鐘要來的穩(wěn)定。
上面只是一個(gè)舉例,實(shí)際上它們實(shí)現(xiàn)的功能上還是有一點(diǎn)差別的。門控時(shí)鐘一例中是能夠比較準(zhǔn)確的在wr_n的上升沿鎖存數(shù)據(jù)的。而使能時(shí)鐘一例中在wr_n有效期間的每個(gè)時(shí)鐘周期都會鎖存輸入數(shù)據(jù),最后寫入結(jié)束后鎖存寄存器里的數(shù)據(jù)是wr_n上升前的0-T(T=1/clk)時(shí)間內(nèi)鎖存的數(shù)據(jù)。因?yàn)槭莻(gè)例子,也就不詳細(xì)說,具體情況具體分析。

在某系統(tǒng)中,前級數(shù)據(jù)輸入位寬為8,而后級的數(shù)據(jù)輸出位寬32,我們需要將8bit的數(shù)據(jù)轉(zhuǎn)換成32bit的數(shù)據(jù),因此后級處理的時(shí)鐘頻率為前級的1/4,若不使用時(shí)鐘時(shí)能,則就要將前級時(shí)鐘進(jìn)行4分頻來作為后級處理的時(shí)鐘,這種設(shè)計(jì)方法會引入新的時(shí)鐘域,為了避免這種情況,我們采用了時(shí)鐘時(shí)能的方法來減少設(shè)計(jì)的復(fù)雜度。

module gray
(
   
input clk,
   
input rst_n,
   
input [7:0] data_in,
   
output reg [31:0] data_out,
   
output reg clk1x_en
);

reg [1:0] cnt;
reg [31:0] shift_reg;

always @ (posedge clk,negedge rst_n)
begin
   
if(!rst_n)
        cnt
<= 2'b0;
     else
        cnt
<= cnt +1'b1;
end

always @ (posedge clk,negedge rst_n)
begin
   
if(!rst_n)
        clk1x_en
<= 1'b0;
    else if(cnt ==2'b01)
        clk1x_en <= 1'b1;
    else
        clk1x_en
<= 1'b0;
end

always @ (posedge clk,negedge rst_n)
begin
   
if(!rst_n)
        shift_reg
<= 32'b0;
    else
        shift_reg
<= {shift_reg[23:0],data_in};
end

always @ (posedge clk,negedge rst_n)
begin
   
if(!rst_n)
        data_out
<= 32'b0;
    else if(clk1x_en==1'b1)//僅在clk1x_en為1時(shí)才將shift_reg的值賦給data_out
        data_out<=shift_reg;
end

endmodule










歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 性爱免费视频 | 91久色| 日韩精品久久久久久 | 国产精品二区一区二区aⅴ污介绍 | 国产日韩久久 | 欧美一区二区 | 夜夜欢视频 | 亚洲精品aaa| 欧美a视频| 国产精品成人国产乱 | 亚洲国产精品久久 | 久久不卡视频 | 欧美伊人久久 | 网站av| 一级a毛片| 四虎影视大全 | 五月激情久久 | 伦一理一级一a一片 | 国产在线一区二区 | 国产在线日韩 | 天天操狠狠干 | 久久久久久91 | 久久中文视频 | 伊人久久久久久久久久 | 九九综合网| 久久精品在线 | 欧美大白屁股 | 日本一级大毛片a一 | 人人超碰在线 | 成人午夜在线视频 | 免费看黄色小视频 | 国产精品久久久久久久久久久久久 | 亚洲精品1区2区 | 久色精品| 一级做a视频| 免费一区二区视频 | 成人免费福利视频 | 欧美特黄 | 免费成人深夜夜行网站 | 老熟女毛片 | 懂色av一区二区三区 |