freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

fpgacpld數(shù)字電路設(shè)計(jì)經(jīng)驗(yàn)分享轉(zhuǎn)載-文庫吧

2025-04-17 20:01 本頁面


【正文】 Latch 的描述可見,其很容易于選擇器的描述相混淆,用 VHDL 語言對選擇器的描述方法如下: process(en,a,b) begin if en=39。139。then q=a; else q=b; end if; end process; 2 FPGA/CPLD 中的一些設(shè)計(jì)方法 FPGA 設(shè)計(jì)中的同步設(shè)計(jì) 異步設(shè)計(jì)不是總能滿足 (它們所饋送的觸發(fā)器的 )建立和保持時(shí)間的要求。因此,異步輸入常常會把錯(cuò)誤的數(shù)據(jù)鎖存到觸發(fā)器,或者使觸發(fā)器進(jìn)入亞穩(wěn)定的狀態(tài) ,在該狀態(tài)下,觸發(fā)器的輸出不能識別為 l 或 0。如果沒有正確地處理,亞穩(wěn)性會導(dǎo)致嚴(yán)重的系統(tǒng)可靠性問題。 另外,在 FPGA 的內(nèi)部資源里最重要的一部分就是其時(shí)鐘資源 (全局時(shí)鐘網(wǎng)絡(luò) ),它一般是經(jīng)過 FPGA 的特定全局時(shí)鐘管腳進(jìn)入 FPGA 內(nèi)部,后經(jīng)過全局時(shí)鐘BUF 適配到全局時(shí)鐘網(wǎng)絡(luò)的,這樣的時(shí)鐘網(wǎng)絡(luò)可以保證相同的時(shí)鐘沿到達(dá)芯片內(nèi)部每一個(gè)觸發(fā)器的延遲時(shí)間差異是可以忽略不計(jì)的。 在 FPGA中上述的全局時(shí)鐘網(wǎng)絡(luò)被稱為時(shí)鐘樹,無論是專業(yè)的第三方工具還是器件廠商提供的布局布線器在延時(shí)參數(shù)提取、分析的時(shí)候都是依據(jù)全局時(shí)鐘網(wǎng)絡(luò)作為計(jì)算的基準(zhǔn)的。如果一個(gè)設(shè)計(jì)沒有使用時(shí)鐘樹提供的時(shí)鐘,那么這些設(shè)計(jì)工具有的會拒絕做延時(shí)分析有的延時(shí)數(shù)據(jù)將是不可靠的。 在我們?nèi)粘5脑O(shè)計(jì)中很多情形下會用到需要分頻的情形,好多人的做法是先用高頻時(shí)鐘計(jì)數(shù),然后使用計(jì)數(shù)器的某一位輸出作為工作時(shí)鐘進(jìn)行其他的邏輯設(shè)計(jì)。其實(shí)這樣的方法是不規(guī)范的。比如下面的描述方法: process begin wait until clk39。event and clk=39。139。; if fck=39。139。then count=(others=39。039。); else count=count 1; end if; end process; process begin wait until count(2)39。event and count(2)=39。139。; shift_reg=data; end process; 在上述的第一個(gè) process 電路描述中,首先計(jì)數(shù)器的輸出結(jié)果 (count(2))相對于全局時(shí)鐘 clk 已經(jīng)產(chǎn)生了一定的延時(shí) (延時(shí)的大小取決于計(jì)數(shù)器的位數(shù)和所選擇使用 的器件工藝 );而在第二個(gè) process 中使用計(jì)數(shù)器的 bit2 作為時(shí)鐘,那么 shift_reg 相對于全局 clk 的延時(shí)將變得不好控制。布局布線器最終給出的時(shí)間分析也是不可靠的。這樣產(chǎn)生的結(jié)果波形仿真如下圖所示: 正確的做法可以將第二個(gè) process 這樣來寫。 process begin wait until clk39。event and clk=39。139。; if count(2 downto 0)=000then shift_reg=data; end if; end process; 或者分成兩步來寫: process(count) begin if count(2 downto 0)=000then en=39。139。; else en=39。039。; end if; end process; process begin wait until clk39。event and clk=39。139。; if en=39。139。then shift_reg=data; end if; end process; 這樣做是相當(dāng)于產(chǎn)生了一個(gè) 8 分頻的使能信號,在使能信號有效的時(shí)候?qū)ata 數(shù)據(jù)采樣到 shift_reg 寄存器中。但此種情形下 shift_reg 的延時(shí)是相對于全局時(shí)鐘 clk 的。下面的圖形更能看得清楚。 FPGA 設(shè)計(jì)中的延時(shí)電路的產(chǎn)生: 在日常的電路設(shè)計(jì)中,有時(shí)候我們需要對信號進(jìn)行延時(shí)處理來適應(yīng)對外接口的時(shí)序關(guān)系,最經(jīng)常也是最典型的情況是做處理機(jī)的接口;因?yàn)榕c處理的接口時(shí)序關(guān)系是異步的,而一個(gè)規(guī)范的 FPGA 設(shè)計(jì)應(yīng)該是盡可能采用同步設(shè)計(jì)。那么遇到這種情況該如何處理呢 ? 首先在 FPGA 中要產(chǎn)生延時(shí),信號必須經(jīng) 過一定的物理資源。在硬件描述語言中有關(guān)鍵詞 Wait for xx ns,需要說明的是該語法是僅僅用于仿真而不能用于綜合的,可綜合的延時(shí)方法有: ?使信號經(jīng)過邏輯門得到延時(shí) (如非門 ); ?使用器件提供的延時(shí)單元 (如 Altera 公司的 LCELL, Xilinx 公司的 ); 注意:當(dāng)使用多級非門的時(shí)候綜合器往往會將其優(yōu)化掉,因?yàn)榫C合器會認(rèn)為一個(gè)信號非兩次還是它自己。 需要說明的是在 FPGA/CPLD 內(nèi)部結(jié)構(gòu)是一種標(biāo)準(zhǔn)的宏單元,下圖是 Xilinx公司的 Spartans II 系列器件的一個(gè)標(biāo)準(zhǔn)宏單元。雖然不同的廠家的芯片 宏單元的結(jié)構(gòu)不同,但概括而言都是由一些組合邏輯外加一或二個(gè)觸發(fā)器而構(gòu)成。在實(shí)際應(yīng)用中,當(dāng)一個(gè)模塊內(nèi)的組合邏輯被使用了那么與其對應(yīng)的觸發(fā)器也就不能用了;同樣如果觸發(fā)器單元被用了那么組合邏輯單元也就廢了。這就是有時(shí)候 (特別是使用 CPLD)雖然設(shè)計(jì)使用的資源并不多但布局布線器卻報(bào)告資源不夠使用的原因。 現(xiàn)面的一個(gè)例子是前一段時(shí)間我在公司遇到的一個(gè)設(shè)計(jì)。設(shè)計(jì)使用 Altera公司的 EPM7256 型號的 CPLD。該設(shè)計(jì)實(shí)際使用的寄存器資源只有 109 個(gè),占整個(gè)器件資源的 42??墒窃撛O(shè)計(jì)使用了如下圖所示的延時(shí)方法來做處理器 接口的時(shí)序: 在該電路的設(shè)計(jì)中使用了大量的 LCELL 來產(chǎn)生 100 多納秒的延時(shí),這樣做的后果是雖然整個(gè)電路的觸發(fā)器資源只使用了 42,可是用 MaxplusII 進(jìn)行布局布線已經(jīng)不能夠通過了。而且我懷疑經(jīng)過這么多邏輯的延時(shí)后所產(chǎn)生的信號還能保持原來的性能不。 當(dāng)需要對某一信號作一段延時(shí)時(shí),初學(xué)者往往在此信號后串接一些非門或其它門電路,此方法在分離電路中是可行的。但在 FPGA 中,開發(fā)軟件在綜合設(shè)計(jì)時(shí)會將這些門當(dāng)作冗余邏輯去掉,達(dá)不到延時(shí)的效果。用 ALTERA 公司的MaxplusII 開發(fā) FPGA 時(shí),可以通過插入一些 LCELL 原語來產(chǎn)生一定的延時(shí),但這樣形成的延時(shí)在 FPGA 芯片中并不穩(wěn)定,會隨溫度等外部環(huán)境的改變而改變,因此并不提倡這樣做。在此,可以用高頻時(shí)鐘來驅(qū)動一移位寄存器,待延時(shí)信號作數(shù)據(jù)輸入,按所需延時(shí)正確設(shè)置移位寄存器的級數(shù),移位寄存器的輸出即為延時(shí)后的信號。此方法產(chǎn)生的延時(shí)信號與原信號比有誤差,誤差大小由高頻時(shí)鐘的周期來決定。對于數(shù)據(jù)信號的延時(shí),在輸出端用數(shù)據(jù)時(shí)鐘對延時(shí)后信號重新采樣,就可以消除誤差。 對于這樣大的延時(shí)我建議的實(shí)現(xiàn)方法是采用時(shí)鐘鎖存來產(chǎn)生延時(shí)的方法,我們知道當(dāng)一個(gè)信號用時(shí)鐘鎖存一次,將會占用一個(gè) 觸發(fā)器資源,信號會向后推移一個(gè)時(shí)鐘周期;該同事的設(shè)計(jì)里 CPLD 芯片正好連接有 32MHz 的時(shí)鐘,那么每用時(shí)鐘鎖存一次 ssp 信號就會推移 31ns,這樣只需多使用 3個(gè)觸發(fā)器資源就可以達(dá)到目的了。電路圖和仿真波形如下圖所示:當(dāng)然這樣做對原來信號高低電平的寬度會稍有改變,但只要是在與其接口的芯片的容許范圍之內(nèi)就不會影響到功能的實(shí)現(xiàn)。 如何提高系統(tǒng)的運(yùn)行速度 同步電路的速度是指同步時(shí)鐘的速度。同步時(shí)鐘愈快,電路處理數(shù)據(jù)的時(shí)間間隔越短,電路在單位時(shí)間處理的數(shù)據(jù)量就愈大 .我們先來看一看同步電路中數(shù)據(jù)傳遞的一個(gè)基本模型 ,如下圖: (Tco 是觸發(fā)器時(shí)鐘到數(shù)據(jù)輸出的延時(shí); Tdelay 是組合邏輯的延時(shí); Tsetup是觸發(fā)器的建立時(shí)間 ) 假設(shè)數(shù)據(jù)已經(jīng)被時(shí)鐘的上升沿打入 D 觸發(fā)器,那么數(shù)據(jù)到達(dá)第一個(gè)觸發(fā)器的 Q 端需要 Tco,再經(jīng)過組合邏輯的延時(shí) Tdelay 到達(dá)的第二個(gè)觸發(fā)器的 D端,要想時(shí)鐘能在第二個(gè)觸發(fā)器再次被穩(wěn)定的鎖入觸發(fā)器,則時(shí)鐘的延遲不能晚于Tco Td
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1