《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的時(shí)序及同步設(shè)計(jì)
基于FPGA的時(shí)序及同步設(shè)計(jì)
摘要: 數(shù)字電路中,時(shí)鐘是整個(gè)電路最重要、最特殊的信號(hào)。第一, 系統(tǒng)內(nèi)大部分器件的動(dòng)作都是在時(shí)鐘的跳變沿上進(jìn)行, 這就要求時(shí)鐘信號(hào)時(shí)延差要非常小, 否則就可能造成時(shí)序邏輯狀態(tài)出錯(cuò).
Abstract:
Key words :

       EDN博客精華文章  作者:ilove314  

  FPGA/CPLD重要設(shè)計(jì)思想及工程應(yīng)用

  時(shí)序同步設(shè)計(jì)

  這是昨晚的課程,主要講時(shí)鐘同步,課上做了一個(gè)實(shí)驗(yàn)仿真的對(duì)比。(08.4.24)

  概述

  數(shù)字電路中,時(shí)鐘是整個(gè)電路最重要、最特殊的信號(hào)。

  第一, 系統(tǒng)內(nèi)大部分器件的動(dòng)作都是在時(shí)鐘的跳變沿上進(jìn)行, 這就要求時(shí)鐘信號(hào)時(shí)延差要非常小, 否則就可能造成時(shí)序邏輯狀態(tài)出錯(cuò).

  第二, 時(shí)鐘信號(hào)通常是系統(tǒng)中頻率最高的信號(hào).

  第三, 時(shí)鐘信號(hào)通常是負(fù)載最重的信號(hào), 所以要合理分配負(fù)載。出于這樣的考慮在FPGA這類(lèi)可編程器件內(nèi)部一般都設(shè)有數(shù)量不等的專(zhuān)門(mén)用于系統(tǒng)時(shí)鐘驅(qū)動(dòng)的全局時(shí)鐘網(wǎng)絡(luò)。這類(lèi)網(wǎng)絡(luò)的特點(diǎn)是:一、負(fù)載能力特別強(qiáng), 任何一個(gè)全局時(shí)鐘驅(qū)動(dòng)線都可以驅(qū)動(dòng)芯片內(nèi)部的觸發(fā)器; 二是時(shí)延差特別小; 三是時(shí)鐘信號(hào)波形畸變小, 工作可靠性好。

  因此, 在FPGA設(shè)計(jì)中最好的時(shí)鐘方案是: 由專(zhuān)用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)單個(gè)主時(shí)鐘去控制設(shè)計(jì)項(xiàng)目中的每一個(gè)觸發(fā)器。同步設(shè)計(jì)時(shí), 全局時(shí)鐘輸入一般都接在器件的時(shí)鐘端, 否則會(huì)使其性能受到影響。

  對(duì)于需要多時(shí)鐘的時(shí)序電路, 最好選用一個(gè)頻率是它們的時(shí)鐘頻率公倍數(shù)的高頻主時(shí)鐘。

  各個(gè)功能模塊要使用統(tǒng)一的復(fù)位電路。在使用帶時(shí)鐘的觸發(fā)器、計(jì)數(shù)器等有復(fù)位端的庫(kù)器件時(shí), 一般應(yīng)盡量使用有同步復(fù)位的器件。注意復(fù)位時(shí)保證各個(gè)器件都能復(fù)位, 以避免某些寄存器的初始狀態(tài)不確定而引起系統(tǒng)工作不可靠。

  若想掌握時(shí)鐘設(shè)計(jì)方法首先需要了解建立時(shí)間和保持時(shí)間的概念。

  建立時(shí)間(setup time):是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以前,數(shù)據(jù)穩(wěn)定不變的時(shí)間,如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被打入觸發(fā)器;保持時(shí)間(hold time):是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以后,數(shù)據(jù)穩(wěn)定不變的時(shí)間,如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。

  對(duì)于一個(gè)設(shè)計(jì)項(xiàng)目來(lái)說(shuō),全局時(shí)鐘(或同步時(shí)鐘)是最簡(jiǎn)單和最可預(yù)測(cè)的時(shí)鐘。在CPLD/FPGA設(shè)計(jì)中最好的時(shí)鐘方案是:由專(zhuān)用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)的單個(gè)主時(shí)鐘去鐘控設(shè)計(jì)項(xiàng)目中的每一個(gè)觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計(jì)項(xiàng)目中采用全局時(shí)鐘。CPLD/FPGA都具有專(zhuān)門(mén)的全局時(shí)鐘引腳,它直接連到器件中的每一個(gè)寄存器。這種全局時(shí)鐘提供器件中最短的時(shí)鐘到輸出的延時(shí)。

  在許多應(yīng)用中只將異步信號(hào)同步化還是不夠的,當(dāng)系統(tǒng)中有兩個(gè)或兩個(gè)以上非同源時(shí)鐘的時(shí)候,數(shù)據(jù)的建立和保持時(shí)間很難得到保證,我們將面臨復(fù)雜的時(shí)間問(wèn)題,那么這個(gè)時(shí)候怎么辦呢?

  最好的方法是將所有非同源時(shí)鐘同步化,那么又怎么樣將非同源時(shí)鐘同步化呢?

  我們可以使用帶使能端的D觸發(fā)器,并引入一個(gè)高頻時(shí)鐘(頻率高于系統(tǒng)中的所有源時(shí)鐘),便可以達(dá)到使系統(tǒng)中所有源時(shí)鐘同步的效果。

  系統(tǒng)時(shí)鐘設(shè)計(jì):

  系統(tǒng)有兩個(gè)不同源時(shí)鐘,一個(gè)為3MHz,一個(gè)為5MHz,不同的觸發(fā)器使用不同的時(shí)鐘。為了系統(tǒng)穩(wěn)定,假設(shè)我們引入一個(gè)20MHz時(shí)鐘,那么這個(gè)20MHz的時(shí)鐘怎么才能將3M和5M時(shí)鐘同步化呢?

系統(tǒng)有兩個(gè)不同源時(shí)鐘

  20M的高頻時(shí)鐘將作為系統(tǒng)時(shí)鐘,輸入到所有觸發(fā)器的的時(shí)鐘端。3M_EN 和5M_EN將控制所有觸發(fā)器的使能端。即原來(lái)接3M時(shí)鐘的觸發(fā)器,接20M時(shí)鐘,同時(shí)3M_EN 將控制該觸發(fā)器使能,原接5M時(shí)鐘的觸發(fā)器,也接20M時(shí)鐘,同時(shí)5M_EN 將控制該觸發(fā)器使能。這樣我們就可以將任何非同源時(shí)鐘同步化。

  異步信號(hào)輸入總是無(wú)法滿足數(shù)據(jù)的建立保持時(shí)間,所以建議大家把所有異步輸入都先經(jīng)過(guò)雙觸發(fā)器進(jìn)行同步化。

  下面是用20MHz的時(shí)鐘作為同步時(shí)鐘得出的功能仿真波形:(下面一個(gè)小波形是將上面一個(gè)圖的EN_3信號(hào)的局部放大,可以明顯看出黃線前后兩個(gè)時(shí)鐘大小相差了一個(gè)主時(shí)鐘周期,這是因?yàn)?0/3不為整數(shù)導(dǎo)致一個(gè)EN_3的脈沖周期有可能6個(gè)也有可能7個(gè)主時(shí)鐘周期)    

功能仿真波形

    

 功能仿真波形  

    

  15MHz的同步時(shí)鐘功能仿真波形,可以得到一致的EN_3和EN_5的脈沖,其高電平保持都為1/20M的時(shí)間。

    

15MHz的同步時(shí)鐘功能仿真波形 

    

  綜合后的原理圖:  

  

綜合后的原理圖

     

 

  在通常的FPGA設(shè)計(jì)中對(duì)時(shí)鐘偏差的控制主要有以下幾種方法:

  1、控制時(shí)鐘信號(hào)盡量走可編程器件的的全局時(shí)鐘網(wǎng)絡(luò)。在可編程器件中一般都有專(zhuān)門(mén)的時(shí)鐘驅(qū)動(dòng)器及全局時(shí)鐘網(wǎng)絡(luò),不同種類(lèi)、型號(hào)的可編程器件,它們中的全局時(shí)鐘網(wǎng)絡(luò)數(shù)量不同,因此要根據(jù)不同的設(shè)計(jì)需要選擇含有合適數(shù)量全局時(shí)鐘網(wǎng)絡(luò)的可編程器件。一般來(lái)說(shuō),走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)到各使能端的延時(shí)小,時(shí)鐘偏差很小,基本可以忽略不計(jì)。

 

  2、若設(shè)計(jì)中時(shí)鐘信號(hào)數(shù)量很多,無(wú)法讓所有的信號(hào)都走全局時(shí)鐘網(wǎng)絡(luò),那么可以通過(guò)在設(shè)計(jì)中加約束的方法,控制不能走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)的時(shí)鐘偏差。

  3、異步接口時(shí)序裕度要足夠大局部同步電路之間接口都可以看成是異步接口,比較典型的是設(shè)計(jì)中的高低頻電路接口、I/O接口,那么接口電路中后一級(jí)觸發(fā)器的建立-保持時(shí)間要滿足要求,時(shí)序裕度要足夠大。

  4、在系統(tǒng)時(shí)鐘大于30MHz時(shí),設(shè)計(jì)難度有所加大,建議采用流水線等設(shè)計(jì)方法。

  5、要保證電路設(shè)計(jì)的理論最高工作頻率大于電路的實(shí)際工作頻率。

  復(fù)位和置位信號(hào)處理:

  在設(shè)計(jì)時(shí)應(yīng)盡量保證有一全局復(fù)位信號(hào),或保證觸發(fā)器、計(jì)數(shù)器在使用前已經(jīng)正確清零狀態(tài)。在設(shè)計(jì)寄存器的清除和置位信號(hào)時(shí),應(yīng)盡量直接從器件的專(zhuān)用引腳驅(qū)動(dòng)。另外,要考慮到有些器件上電時(shí),觸發(fā)器處于一種不確定的狀態(tài),系統(tǒng)設(shè)計(jì)時(shí)應(yīng)加入全局復(fù)位/Reset。

  這樣主復(fù)位引腳就可以給設(shè)計(jì)中的每一個(gè)觸發(fā)器饋送清除或置位信號(hào),保證系統(tǒng)處于一個(gè)確定的初始狀態(tài)。需要注意的一點(diǎn)是:不要對(duì)寄存器的置位和清除端同時(shí)施加不同信號(hào)產(chǎn)生的控制,因?yàn)槿绻霈F(xiàn)兩個(gè)信號(hào)同時(shí)有效的意外情況,會(huì)使寄存器進(jìn)入不定狀態(tài)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 娇妻校花欲乱往事叶子| 欧美精选欧美极品| 国产在线无码视频一区| 8天堂资源在线| 女女互揉吃奶揉到高潮视频| 中文字幕无线码免费人妻| √天堂资源地址在线官网| www成人免费视频| 18videosex性加拿大| 新梅金瓶2之爱奴国语| 久久精品国产精品亚洲毛片| 成人免费小视频| 女人让男人桶的小视频| 中国丰满熟妇xxxx性| 日日操夜夜操视频| 久久婷婷五月综合色国产香蕉| 最近最好的中文字幕2019免费| 亚洲噜噜噜噜噜影院在线播放| 欧美极品在线观看| 亚洲熟女综合一区二区三区| 久久久久一区二区三区| ankhazone度盘| 无码一区二区三区在线| 久久天天躁狠狠躁夜夜躁2020 | 啊灬啊灬啊灬深灬快用力| 视频二区三区国产情侣在线| 国产大片b站免费观看直播| 欧美激情性xxxxx| 国产特黄特色一级特色大片| 手机看片国产在线| 国产精品美女久久久网av| 91av最新地址| 国产精品自产拍在线观看| 91手机在线视频观看| 国模吧双双大尺度炮交gogo | 3d动漫精品啪啪一区二区免费| 国模视频一区二区| 99久久亚洲综合精品网站| 在线观看一区二区三区视频| 99视频有精品| 在线观看一级毛片免费|