版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、可編程ASIC模塊化硬件與進程模型 目的目的 第三部分第三部分(模塊化硬件與進程模型模塊化硬件與進程模型)與第四部分與第四部分(信號傳輸模型信號傳輸模型)均是講述均是講述vhdl硬件描畫言語的硬件描畫言語的原理原理 這兩部分的學(xué)習(xí)目的是為了讓大家了解硬件描這兩部分的學(xué)習(xí)目的是為了讓大家了解硬件描畫言語的運轉(zhuǎn)機制,了解硬件仿真的原理,有畫言語的運轉(zhuǎn)機制,了解硬件仿真的原理,有利于在以后的設(shè)計中運用多言語進展各種級別利于在以后的設(shè)計中運用多言語進展各種級別的建模;的建模; 對于方案從事對于方案從事EDA工具軟件設(shè)計的學(xué)員也有一工具軟件設(shè)計的學(xué)員也有一定的參考價值。定的參考價值。數(shù)字電路的信號跳變特
2、點數(shù)字電路din0din1dout輸出(dout)的值只需在輸入(din0,din1)發(fā)生變化的時候才會變化(可以有所延遲)理想情況下是瞬間變化,沒有過渡時間。din0din1dout數(shù)字電路的信號跳變特點數(shù)字電路din0din1dout輸出(dout)的值只需在輸入(din0,din1)發(fā)生變化的時候才會變化(可以有所延遲)理想情況下是瞬間變化,沒有過渡時間。din0din1dout本節(jié)假設(shè) 為了問題分析的方便,本節(jié)暫時假設(shè),輸出的跳變與輸入的跳變之間無延遲,跳變無過渡。用軟件方法來仿真硬件行為數(shù)字電路元件din0din1doutdin0din1dout問題:如何用軟件的方法來仿真這個硬件元
3、件的行為?用軟件方法來仿真硬件行為數(shù)字電路元件din0din1doutdin0din1doutFunct() if(din0 和 din1滿足某種條件) dout = 0; Else dout = 1; / 在這里假設(shè)din0,din1和dout為全局量用軟件方法來仿真硬件行為數(shù)字電路元件din0din1doutdin0din1dout問題:何時調(diào)用Funct?Funct() if(din0 和 din1滿足某種條件) dout = 0; Else dout = 1; / 在這里假設(shè)din0,din1和dout為全局量時間方案(調(diào)用方案)1數(shù)字電路元件din0din1doutdin0din1d
4、outt按照特定的分辨率對時間軸作細劃分,調(diào)用funct。承襲了傳統(tǒng)電子系統(tǒng)(模擬,平滑系統(tǒng))的仿真思想。缺陷:調(diào)用頻繁,仿真時cpu負(fù)擔(dān)過重。時間方案(調(diào)用方案)2數(shù)字電路元件din0din1doutdin0din1doutt(理想數(shù)字系統(tǒng)仿真)只需求對輸入跳變點調(diào)用Funct。缺陷:只適宜于理想數(shù)字波形。ASIC仿真時間方案 根本上是采用第二種方案。 以下的仿真討論均運用第二種方案。波形記錄舉例數(shù)字電路din0din1doutdin0din1doutttDin0 din1001t011t110t201t0t1t2仿真算法流程讀取波形文件中時間st時的輸入值(din0, din1)調(diào)用Fun
5、ct往波形文件記錄St時的輸出值(dout, )st為仿真時間指針時間t終了?St指向波形文件中的下一個時間點退出St指向波形文件中的起始時間點YN思索復(fù)雜的情況:多元件(多模塊)u1u3u2abcefgVHDL處置方案:一個硬件模塊對應(yīng)一個軟件進程。U1: process(a, b)U2: process(c)U3: process(e, f)進程調(diào)度(方案1)u1u3u2abcefg方案1: 偷懶方法。 當(dāng)任何一個輸入(a,b,c)發(fā)生變化時,均將一切的進程調(diào)度一次。問題:用什么來決議調(diào)度的順序?方案1修補:根據(jù)信號流向來確定調(diào)度順序。問題:當(dāng)存在信號反響的時候又如何處置?進程調(diào)度(方案2
6、)u1u3u2abcefg方案2: 對每一個模塊,只需當(dāng)該模塊的輸入發(fā)生變化時,該模塊才被調(diào)用。問題:當(dāng)模塊的輸入發(fā)生變化,但是又沒有引起模塊的硬件動作時,這種方法會有什么缺陷?例子:存放器的時鐘發(fā)生變化時,存放器才會產(chǎn)生硬件動作,而數(shù)據(jù)輸入發(fā)生變化時,存放器并不產(chǎn)生任何動作。VHDL中process的定義 ModuleName:Process( 敏感信號列表 ) Begin - 進程描畫語句。 End process;當(dāng)敏感信號列表中的任何一個信號發(fā)生變化,該進程都會被調(diào)度Process例子 假設(shè)假設(shè)U2為非門,那么例子程序如下:為非門,那么例子程序如下: U2: process( c )
7、Begin if( c = 1 ) then f = 0; else f = 1; end if; End process;當(dāng)c發(fā)生變化時,該進程被調(diào)度.表示信號賦值。VHDL的進程調(diào)度u1u3u2abcefgabcefVHDL的進程調(diào)度u1u3u2abcefgabcef進入一個新的進入一個新的仿真周期仿真周期U1_process被調(diào)度的進程:一個一個子仿真周期子仿真周期VHDL的進程調(diào)度u1u3u2abcefgabcef被調(diào)度的進程:進入一個新的進入一個新的仿真周期仿真周期U1_processU3_process子仿真周期1子仿真周期2VHDL的進程調(diào)度u1u3u2abcefgabcef進入
8、一個新進入一個新的仿真周期的仿真周期被調(diào)度的進程:U1_processU2_processU3_process子仿真周期1子仿真周期2聯(lián)想:SARS隔離檢測隔離子周期1隔離子周期2隔離子周期3VHDL進程調(diào)度算法 1.假設(shè)仿真事件假設(shè)仿真事件(有信號發(fā)生變化有信號發(fā)生變化)搜索完,搜索完,那么終了仿真;否那么,跳到下一個信那么終了仿真;否那么,跳到下一個信號事件點,此時進入一個新的仿真周期;號事件點,此時進入一個新的仿真周期; 2.找出一切對發(fā)生變化的信號敏感的進程,找出一切對發(fā)生變化的信號敏感的進程,進入一個新的子仿真周期,依次對這些進入一個新的子仿真周期,依次對這些進程調(diào)度一次;進程調(diào)度一
9、次; 3.假設(shè)進程調(diào)度后出現(xiàn)新的事件,那么回假設(shè)進程調(diào)度后出現(xiàn)新的事件,那么回到第到第2步;否那么回到第步;否那么回到第1步。步。VHDL仿真思想 子仿真周期的時間就是一個子仿真周期的時間就是一個Delta延時,而延時,而Delta延時為延時為0延時。延時。 顯然,一個仿真周期可以包含多個子仿真周期,顯然,一個仿真周期可以包含多個子仿真周期,也就是包含多個也就是包含多個Delta延時。延時。 Delta延時數(shù)目的添加,并不會推進仿真時鐘。延時數(shù)目的添加,并不會推進仿真時鐘。也即也即“微觀時間增量不改動宏觀時間;只需微觀時間增量不改動宏觀時間;只需仿真周期的添加才會推進仿真時鐘。仿真周期的添加才
10、會推進仿真時鐘。 硬件模塊的運轉(zhuǎn)之間是并行的關(guān)系;軟件進程硬件模塊的運轉(zhuǎn)之間是并行的關(guān)系;軟件進程的調(diào)度之間是并發(fā)的關(guān)系。硬件的并行是經(jīng)過的調(diào)度之間是并發(fā)的關(guān)系。硬件的并行是經(jīng)過軟件的并發(fā)來仿真。軟件的并發(fā)來仿真。補充:并發(fā)與并行 并發(fā):補充:并發(fā)與并行 并行就是真正的同時,在任何時辰(瞬間),多個進程都在同時地運轉(zhuǎn)。VHDL軟件體系硬件電路process();process();process();編譯器進程調(diào)度器(仿真器)仿真結(jié)果VHDL源代碼源代碼EDA工具工具綜合構(gòu)成的源碼方式網(wǎng)表 進程構(gòu)造體(即vhdl源代碼)里曾經(jīng)描畫了整個硬件的外形,所以它可以被綜合器綜合成硬件; 并不是一切描畫
11、方式的vhdl代碼都可以被綜合成硬件。太籠統(tǒng)的描畫只適宜做系統(tǒng)建模和仿真。 顯然綜合器是不會去關(guān)懷敏感信號量的,由于它不存在進程調(diào)度的問題,而是直接根據(jù)進程體內(nèi)的代碼來構(gòu)成硬件電路。 但是要留意,即使編寫的是面向綜合的代碼,敏感信號量依然需求補全。由于敏感信號的缺漏對于仿真器來說是一個錯誤,會導(dǎo)致仿真時應(yīng)該被調(diào)度的進程沒有得到調(diào)度。 而綜合器構(gòu)成的綜合后仿真用的網(wǎng)表源文件,是保證不喪失敏感信號的。 假設(shè)設(shè)計者喪失了敏感信號,就會呵斥設(shè)計級別的代碼和綜合后的代碼之間仿真結(jié)果不相符。對于敏感信號 一個模塊,并非一切的輸入都必需作為一個模塊,并非一切的輸入都必需作為敏感信號,只需引起硬件動作的信號才
12、敏感信號,只需引起硬件動作的信號才必需作為敏感信號。必需作為敏感信號。對于敏感信號 將一切的輸入信號將一切的輸入信號放入進程的敏感信放入進程的敏感信號表中,在邏輯上號表中,在邏輯上并沒有什么錯誤,并沒有什么錯誤,但是會引起進程調(diào)但是會引起進程調(diào)度頻繁而導(dǎo)致仿真度頻繁而導(dǎo)致仿真效率降低效率降低(cpu負(fù)擔(dān)負(fù)擔(dān)太重太重)。事情終了了嗎?U1U2abc 假設(shè)u1和u2都是“直連邏輯(在數(shù)字邏輯設(shè)計中,叫做緩沖器元件),那么它們的進程描畫(用c言語)如為:/*敏感信號量為(a) */Void functU1() b = a;/* 敏感信號量為(b) */Void functU2() c = b;很顯然
13、,當(dāng)a的值發(fā)生變化時,會激活兩個仿真子周期,functU1和functU2依次得到調(diào)度,從而a的值得可以可靠地傳播到c。用另外的方式建立敏感信號表,這里省略。事情終了了嗎?U1U2abc 假設(shè)u1和u2都是“直連邏輯(在數(shù)字邏輯設(shè)計中,叫做緩沖器元件),那么它們的進程描畫(用VHDL言語)如為:Process(a)Begin b = a;End process;Process(b)Begin c = b;End process;很顯然,當(dāng)a的值發(fā)生變化時,會激活兩個仿真子周期,functU1和functU2依次得到調(diào)度,從而a的值得可以可靠地傳播到c。嘗試加上時鐘變成時序電路U1U2abccl
14、kVoid functU1() if(rising_edge(clk) b = a;C言語描畫的進程如下:Void functU2() if(rising_edge(clk) c = b;留意這兩個進程的敏感信號量都是clk。嘗試加上時鐘變成時序電路U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;C言語描畫的進程如下:Void functU2() if(rising_edge(clk) c = b;當(dāng)clk發(fā)生變化時,這兩個進程會被激活,并且依次在一個子仿真周期內(nèi)被調(diào)度。嘗試加上時鐘變成時序電路U1U2abcclkVoid functU1(
15、) if(rising_edge(clk) b = a;C言語描畫的進程如下:Void functU2() if(rising_edge(clk) c = b;假設(shè)首先調(diào)度functU2,再調(diào)度functU1 ,那么仿真結(jié)果可以符合實際的硬件行為。嘗試加上時鐘變成時序電路U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;C言語描畫的進程如下:Void functU2() if(rising_edge(clk) c = b;而假設(shè)首先調(diào)度functU1,再調(diào)度functU2,那么仿真結(jié)果與實際的硬件行為不符!問題 我們發(fā)現(xiàn),調(diào)度順序的不同,會導(dǎo)
16、致截然不同的仿真結(jié)果; 以下是這個問題的另外一種方式的表述U3U1U2abc/* 敏感信號量為(a, b)*/functU3() b = a; c = b;顯然,兩種方式中,a的值都可以可靠地傳輸?shù)絚。將u1和u2合并成新的元件u3,并且只用一個進程函數(shù)描畫/* 敏感信號量為(a, b) */functU3() c = b; b = a;元件合并方式1:方式2:U3U1U2abc/* 敏感信號量為(a, b)*/functU3() b = a; c = b;顯然,兩種方式中,a的值都可以可靠地傳輸?shù)絚。將u1和u2合并成新的元件u3,并且只用一個進程函數(shù)描畫/* 敏感信號量為(a, b) */
17、functU3() c = b; b = a;值得留意的是,這種純組合電路的進程函數(shù)中,被讀的信號應(yīng)該都參與敏感信號表中U3U1U2abc/* 敏感信號量為(a, b)*/Process(a,b)begin b = a; c = b;End process;顯然,兩種方式中,a的值都可以可靠地傳輸?shù)絚。將u1和u2合并成新的元件u3,并且只用一個進程函數(shù)描畫/* 敏感信號量為(a, b) */Process( a,b)begin c = b; b = a;End process;值得留意的是,這種純組合電路的進程函數(shù)中,被讀的信號應(yīng)該都參與敏感信號表中U3U1U2abc/* 敏感信號量為(a,
18、 b)*/Process(a,b)begin b = a; c = b;End process;顯然,兩種方式中,a的值都可以可靠地傳輸?shù)絚。將u1和u2合并成新的元件u3,并且只用一個進程函數(shù)描畫/* 敏感信號量為(a, b) */Process( a,b)begin c = b; b = a;End process;這樣在a發(fā)生變化時,導(dǎo)致進程被調(diào)度兩次,從而保證了a的值順利地在一個仿真周期內(nèi)“立刻地傳輸?shù)絚。U1U2abcclk/* 敏感信號為(clk) */FunctU3() if( rising_edge(clk) ) c = b; b = a; 此時仿真沒問題給這個系統(tǒng)加上時鐘,變
19、成時序電路U1U2abcclk/* 敏感信號為(clk) */FunctU3() if( rising_edge(clk) ) b = a; c = b; 此時仿真出錯,與實際不符!交換順序! 這是為什么?如何處置?作業(yè)(挑戰(zhàn)免考題的根底) 以下是一個數(shù)字硬件系統(tǒng)的模塊框圖。u1u2u3abcd要求 1. 為輸入輸出信號定義一種波形記錄文件格式,編寫函數(shù),可以根據(jù)文件自動畫出信號波形; 2. 編寫rising_edge函數(shù): bool rising_edge(std_logic clk ); 其中std_logic為自定義類型,其在數(shù)字邏輯上的值暫時為(0, 1)。要求 3. 假設(shè)曾經(jīng)有工程師利用c言語編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題三牛頓運動定律第1講牛頓第一定律、牛頓第三定律練習(xí)含答案
- 美容美發(fā)工具采購協(xié)議
- 《大數(shù)據(jù)分析》課件
- 江西省萬載縣高中地理 第三章 生產(chǎn)活動與地域聯(lián)系 3.1 農(nóng)業(yè)區(qū)位因素教案 中圖版必修2
- 2024-2025學(xué)年新教材高中地理 第2單元 不同類型區(qū)域的發(fā)展 單元活動 開展小區(qū)域調(diào)查教案 魯教版選擇性必修2
- 2024秋四年級英語上冊 Unit 6 Meet my family第3課時(Let's spell Lets sing)教案 人教PEP
- 2024-2025學(xué)年高中物理 第十二章 機械波 1 波的形成和傳播教案3 新人教版選修3-4
- 高考地理一輪復(fù)習(xí)第四章地球上的水及其運動第二節(jié)海水的性質(zhì)課件
- 包豪斯設(shè)計課件
- 租賃備案代辦委托合同
- 企業(yè)風(fēng)險管理與危機應(yīng)對實操指南
- 小學(xué)綜合實踐活動課《有趣的紙貼畫》課件
- 護理部床邊綜合能力核課件
- 當(dāng)代世界文化發(fā)展的趨勢
- 花茶大學(xué)生創(chuàng)新創(chuàng)業(yè)計劃書
- 律師進學(xué)校法律知識講座
- 《中國近代經(jīng)濟史》課件
- 九年級道德與法治的知識競賽題
- 2024年山東煙臺財金集團招聘筆試參考題庫含答案解析
- 養(yǎng)殖項目風(fēng)險評估報告
- 快遞分揀員勞動合同書
評論
0/150
提交評論