![可編程ASIC設計及應用 [李廣軍]信號傳輸模型_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/8b544ed2-75b9-4426-bd26-96bf506fe638/8b544ed2-75b9-4426-bd26-96bf506fe6381.gif)
![可編程ASIC設計及應用 [李廣軍]信號傳輸模型_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/8b544ed2-75b9-4426-bd26-96bf506fe638/8b544ed2-75b9-4426-bd26-96bf506fe6382.gif)
![可編程ASIC設計及應用 [李廣軍]信號傳輸模型_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/8b544ed2-75b9-4426-bd26-96bf506fe638/8b544ed2-75b9-4426-bd26-96bf506fe6383.gif)
![可編程ASIC設計及應用 [李廣軍]信號傳輸模型_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/8b544ed2-75b9-4426-bd26-96bf506fe638/8b544ed2-75b9-4426-bd26-96bf506fe6384.gif)
![可編程ASIC設計及應用 [李廣軍]信號傳輸模型_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/8b544ed2-75b9-4426-bd26-96bf506fe638/8b544ed2-75b9-4426-bd26-96bf506fe6385.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電子科技大學可編程ASIC信號傳輸模型電子科技大學回顧上一節課,發生了什么U1U2abcclk/* 敏感信號為(clk) */FunctU3() if( ( clklast = 0 ) & ( clk = 1 ) ) b = a; c = b; 此時仿真出錯,與實際不符!交換順序!電子科技大學解決方案一 可以規定設計者嚴格按照 c = b; b = a;的順序,即“從后級到前級”的順序描述寄存器隊列。U1U2abcclk電子科技大學但是 設計者在實際設計當中如何時刻注意寄存器的先后級順序? 特別是設計者如何去描述如下圖所示的循環移位寄存器?U1U2abcclkPreset解決方案分析(
2、1)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;Void functU2() if(rising_edge(clk) c = b;想想如何解決調想想如何解決調度順序的問度順序的問題題解決方案分析(1)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;Void functU2() if(rising_edge(clk) c = b;一種好的硬件描一種好的硬件描述語言,或者一述語言,或者一種好的硬件建模種好的硬件建模方法,應該允許方法,應該允許設計者用設計者用任何順任何順序序描述或者調度描
3、述或者調度各個模塊的進程。各個模塊的進程。解決方案分析(2)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;Void functU2() if(rising_edge(clk) c = b;進程調度是串行進程調度是串行的,而硬件運行的,而硬件運行是并行的。從軟是并行的。從軟件的角度上看,件的角度上看,進程內的信號傳進程內的信號傳輸不能輸不能“過快過快”,以至于過早地傳以至于過早地傳輸到目的地。輸到目的地。解決方案分析(3)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;Void func
4、tU2() if(rising_edge(clk) c = b;出現上述問題的出現上述問題的根本原因在于,根本原因在于,我們還沒有考慮我們還沒有考慮到信號傳輸中的到信號傳輸中的延時延時解決方案分析(4)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;Void functU2() if(rising_edge(clk) c = b;電子科技大學 假設信號從a直接傳輸到c,中間經過b。 當a處的電信號往b傳輸的同時,b處的信號也在往c傳輸。 即使假定傳輸延時為0(很理想的情況),但是任意時刻(或者說任意瞬間),c所獲得的信號絕對不是此時b所獲得
5、的信號,更不會是a的信號(雖然它們的值有可能是完全相同的)。信號傳輸的延時abc解決方案分析(4)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a;Void functU2() if(rising_edge(clk) c = b;假設先調度假設先調度functU1再調再調度度functU2。functU1調度調度完畢后,完畢后,a的的新值不能立新值不能立即傳輸到即傳輸到b。必須等到必須等到functU2被調被調度之后。度之后。解決方案分析(4)U1U2abcclkVoid functU1() if(rising_edge(clk) b = a
6、;Void functU2() if(rising_edge(clk) c = b;假設先調度假設先調度functU2再調再調度度functU1。分析仍然同分析仍然同前。前。VHDL解決方案U1U2abcclkU1:Process(clk)begin if(rising_edge(clk) b = a; end if;End process;U2:Process(clk)begin if(rising_edge(clk) c = b; end if;End process;Vhdl在信號在信號賦值問題上,賦值問題上,引入了一個引入了一個延時的概念。延時的概念。VHDL解決方案-Delta延時U
7、1U2abcclkU1:Process(clk)begin if(rising_edge(clk) b = a; end if;End process;U2:Process(clk)begin if(rising_edge(clk) c = b; end if;End process;很容易發現,很容易發現,信號賦值的延信號賦值的延時,正好應該時,正好應該等于前面所說等于前面所說的一個的一個子仿真子仿真周期周期的時間的時間-Delta延時延時。電子科技大學必須等于Delta延時 信號賦值延時,不能少于信號賦值延時,不能少于Delta延時,這延時,這是前面所說的調度順序問題能得到有效是前面所說的
8、調度順序問題能得到有效解決的保證;解決的保證; 此外,信號賦值的延時,不可能大于一此外,信號賦值的延時,不可能大于一個個Delta延時延時(即子仿真周期的時間即子仿真周期的時間),因,因為延時時間到達,目標信號點發生有效為延時時間到達,目標信號點發生有效更新后,才可能激活下一個子仿真周期。更新后,才可能激活下一個子仿真周期。電子科技大學考慮模塊合并的情況 Process( clk ) Begin if( clkevent and clk = 1 ) then b = a; c = b; end if; End process;這個進程的行為必須這個進程的行為必須跟前面所說的雙進程的跟前面所說的
9、雙進程的行為一樣。行為一樣。abc001101tlastpresentU1U2abcclk電子科技大學考慮模塊合并的情況 Process( clk ) Begin if( clkevent and clk = 1 ) then b = a; c = b; end if; End process;當仿真程序執行這條當仿真程序執行這條語句之后,語句之后,a的新的值的新的值并不會立即到達并不會立即到達b。abc001101tlastpresentU1U2abcclk電子科技大學考慮模塊合并的情況 Process( clk ) Begin if( clkevent and clk = 1 ) then
10、 b = a; c = b; end if; End process;同樣執行這條語句后,同樣執行這條語句后,b的值也不會立即傳的值也不會立即傳輸到達輸到達c。abc001101tlastpresentU1U2abcclk電子科技大學考慮模塊合并的情況 Process( clk ) Begin if( clkevent and clk = 1 ) then b = a; c = b; end if; End process;abc001101tlastpresentU1U2abcclk電子科技大學考慮模塊合并的情況 Process( clk ) Begin if( clkevent and c
11、lk = 1 ) then b = a; c = b; end if; End process;abc001101tlastpresent10U1U2abcclk電子科技大學假如給時序進程添加冗余敏感信號 Process( b, clk ) Begin if( clkevent and clk = 1 ) then b = a; c = b; end if; End process;必須保證必須保證process不能因不能因為為b的改變而得到調度。的改變而得到調度。可見,時鐘沿條件判斷的可見,時鐘沿條件判斷的值只在值只在第一個第一個子仿真周期子仿真周期為真。為真。電子科技大學回頭看看組合電路進
12、程的情況 Process( a, b ) Begin b = a; c = b; End process;再次強調再次強調:當當a發生發生變化時,該進程將變化時,該進程將被調度兩次,即被調度兩次,即a的變化激活了兩個的變化激活了兩個子仿真周期。這樣子仿真周期。這樣保證了保證了a的值能順的值能順利傳播到利傳播到c。abc行為仿真行為仿真電子科技大學回頭看看組合電路進程的情況 Process( a, b ) Begin b = a; c = b; End process;再次強調再次強調:當當a發生發生變化時,該進程將變化時,該進程將被調度兩次,即被調度兩次,即a的變化激活了兩個的變化激活了兩個子
13、仿真周期。這樣子仿真周期。這樣保證了保證了a的值能順的值能順利傳播到利傳播到c。abc時序仿真時序仿真電子科技大學假設敏感信號量遺漏 Process( a ) Begin b = a; c = b; End process;abc行為仿真行為仿真電子科技大學假設敏感信號量遺漏 Process( a ) Begin b = a; c = b; End process;abc行為仿真行為仿真電子科技大學假設敏感信號量遺漏 Process( a ) Begin b = a; c = b; End process;A發生一次,該發生一次,該process只被調度只被調度一次,造成行為仿一次,造成行為仿
14、真結果錯誤。真結果錯誤。abc行為仿真行為仿真而時序仿真仍然是而時序仿真仍然是正確的正確的(上節課分析過上節課分析過)電子科技大學關于組合進程的結論 Process( a, b ) Begin b = a; c = b; End process;組合電路進程中,所有組合電路進程中,所有被讀取的信號,都應該被讀取的信號,都應該放到敏感信號列表中。放到敏感信號列表中。當輸入發生變化時,組當輸入發生變化時,組合進程有可能連續多次合進程有可能連續多次被調度。被調度。電子科技大學關于信號賦值完成(到達)時間的說法 說法說法1:大部分資料上說的是,:大部分資料上說的是,信號賦值是在信號賦值是在進程退出時完
15、成進程退出時完成(到達到達)。 說法說法2:而部分資料說的是,:而部分資料說的是,信號賦值是在當信號賦值是在當前的前的子仿真周期子仿真周期結束時完成結束時完成(到達到達)。 分析:說法分析:說法1是從硬件的角度來看問題,其依是從硬件的角度來看問題,其依據的前提是,據的前提是,進程是并行執行的;進程是并行執行的; 而說法而說法2是從底層的軟件仿真來看問題,其依是從底層的軟件仿真來看問題,其依據的前提是,據的前提是,進程是串行調度進程是串行調度(“并發并發”的本的本質質)的。的。電子科技大學從現在開始 課程開始進入設計階段。這意味著,學習時,課程開始進入設計階段。這意味著,學習時,思維方法應該從軟
16、件模型轉向硬件模型。思維方法應該從軟件模型轉向硬件模型。 以后的說法,大部分是基于第一種假設以后的說法,大部分是基于第一種假設(進程進程并行并行)。也就是,你可以并且應該使用純粹的。也就是,你可以并且應該使用純粹的硬件思維硬件思維來進行代碼分析和代碼設計。來進行代碼分析和代碼設計。 但是你應該時刻注意使用底層的軟件仿真思維,但是你應該時刻注意使用底層的軟件仿真思維,來思考來思考vhdl語法背后的運行機制,這不僅可以語法背后的運行機制,這不僅可以很好地理解很好地理解HDL,而且有助于你純熟地使用任而且有助于你純熟地使用任何一門語言,或者使用多語言配合來進行系統何一門語言,或者使用多語言配合來進行
17、系統建模建模/仿真,特別是軟件和硬件的協同建模仿真,特別是軟件和硬件的協同建模/仿仿真。真。電子科技大學例如 我們認為前面例子中,任時刻被同時激我們認為前面例子中,任時刻被同時激活的進程之間是并行活的進程之間是并行(嚴格地說是嚴格地說是“并并發發”)執行的。執行的。 那么思考:如何用那么思考:如何用c語言來實現前面所說語言來實現前面所說的時序進程和組合進程,以及這些進程的時序進程和組合進程,以及這些進程的調度?的調度? C語言實現時,如何處理信號賦值的語言實現時,如何處理信號賦值的Delta延時延時?電子科技大學進程內的信號賦值:順序執行,并行賦值 例1 : Process Begin a =
18、 1; a = 0; End process;這兩個賦值實際上是這兩個賦值實際上是“并行并行”(也可以說也可以說“并并發發”)的。的。但是由于但是由于process內語句內語句運行的順序性,后者將運行的順序性,后者將比前者比前者“晚晚”到達一個到達一個很微小的時間。很微小的時間。結果:結果:a = 0。電子科技大學進程內的信號賦值:順序執行,并行賦值 例例1 : Process Begin a = 1; a = 0; End process;在實際設計中,應該盡在實際設計中,應該盡量避免出現這種對信號量避免出現這種對信號多次賦值覆蓋;多次賦值覆蓋;這意味著,盡量不要使這意味著,盡量不要使用書上
19、的在用書上的在process內部內部進行信號進行信號初始化初始化的方法的方法(后面將詳細講述后面將詳細講述)。結果:結果:a = 0。電子科技大學進程內的信號賦值:順序執行,并行賦值 例例2 : Process(a,b,c,d) Begin d = a; x = c XOR d; d = b; y = c XOR d; End process;結果:結果:x = b XOR c; y = b XOR c;電子科技大學VHDL中的變量 與與c語言的變量一樣,賦值是立即有效的。語言的變量一樣,賦值是立即有效的。 Process( a, b, c ) 注意注意d為變量為變量(用用variable聲明
20、聲明) Begin d := a; x = c XOR d; d := b; y = c XOR d; End prcoess;結果:結果:x = a XOR c;y = b XOR c;電子科技大學VHDL中的對象 信號信號: 全局量全局量(進程之外定義進程之外定義),代表硬件,代表硬件連線,賦值有連線,賦值有 Delta延時延時 變量:局部量變量:局部量(只在進程內可見只在進程內可見),不代表,不代表硬件連線,只代表一個硬件連線,只代表一個“值值”或者或者“運運算結果算結果”,賦值為立即有效。,賦值為立即有效。 常數:全局量。直接與高電平或者地電常數:全局量。直接與高電平或者地電平相連接。
21、平相連接。 具體可參考教材具體可參考教材(第一版第一版)中中p.78的總結。的總結。電子科技大學設計中要注意 變量是變量是VHDL為仿真而專門引入的概念,為仿真而專門引入的概念,實際上因為它不具備硬件特性,因此在實際上因為它不具備硬件特性,因此在RTL設計中要盡量避免使用。設計中要盡量避免使用。 而在使用而在使用VHDL高層建模或者仿真時,高層建?;蛘叻抡鏁r,可以適當使用變量。可以適當使用變量。電子科技大學數據類型 VHDL的對象所能使用的數據類型有:的對象所能使用的數據類型有: 位,位矢量;位,位矢量; 整數,自然數,實數;整數,自然數,實數; 布爾量;布爾量; 時間;時間; 字符,字符串;
22、字符,字符串; 錯誤等級。錯誤等級。直接地描述硬件的直接地描述硬件的結構,可以直接被結構,可以直接被硬件綜合。硬件綜合。電子科技大學數據類型 VHDL的對象所能使用的數據類型有:的對象所能使用的數據類型有: 位,位矢量;位,位矢量; 整數,自然數,實數;整數,自然數,實數; 布爾量;布爾量; 時間;時間; 字符,字符串;字符,字符串; 錯誤等級。錯誤等級。其可綜合性根據綜其可綜合性根據綜合器的綜合能力不合器的綜合能力不同而不同。同而不同。電子科技大學數據類型 VHDL的對象所能使用的數據類型有:的對象所能使用的數據類型有: 位,位矢量;位,位矢量; 整數,自然數,實數;整數,自然數,實數; 布
23、爾量;布爾量; 時間;時間; 字符,字符串;字符,字符串; 錯誤等級。錯誤等級。純粹用于仿真,不純粹用于仿真,不可綜合??删C合。電子科技大學整型的注意事項 使用整型時,應該指定數據的取值范圍。使用整型時,應該指定數據的取值范圍。 因為這樣可以指導綜合器使用多少數據因為這樣可以指導綜合器使用多少數據線來實現它線來實現它 如果不指定,則綜合器會考慮最壞的情如果不指定,則綜合器會考慮最壞的情況,使用況,使用32bit來實現。來實現。電子科技大學信號的特性本門課涉及的內容:本門課涉及的內容:驅動能力;驅動能力;取值狀態;取值狀態;傳輸延時;傳輸延時;功耗。功耗。電子科技大學驅動能力輸 出 1的 模 塊
24、+ 3.3V高 電 平 輸 出 阻 抗負 載 阻 抗輸出0的模塊低電平輸出阻抗負載阻抗+3.3V電子科技大學高阻態Z與總線復用輸 出 0的 模 塊+3.3V輸 出 1的 模 塊+3.3V高 電 平 輸 出 阻 抗負 載 阻 抗低 電 平 輸 出 阻 抗錯誤電路:錯誤電路:在在VHDL中,中,這這 種情況叫做種情況叫做 多驅動。多驅動。思考:會造成思考:會造成什么什么 后果?后果?電子科技大學輸出0的模塊輸出z的模塊+3.3V負載阻抗+3.3V低電平輸出阻抗高阻態Z與總線復用 一般情況下,幾路一般情況下,幾路 輸出同時驅動一路輸出同時驅動一路 負載時,只允許一負載時,只允許一 路有邏輯電平路有邏
25、輯電平1或或0 輸出,其他路必須輸出,其他路必須 輸出高阻輸出高阻z. 思考:哪種電路思考:哪種電路 可以實現線與?可以實現線與?電子科技大學因此對于STD_LOGIC型 其取值有: “U”U”初始值初始值 “X”X”不定不定 “0”“0”0 0 “1”“1”1 1 “Z”Z”高阻高阻 “W”W”弱信號不定弱信號不定 “L”L”弱信號弱信號0 0 “H”H”弱信號弱信號1 1 “-”“-”不可能情況不可能情況電子科技大學實際信號傳輸延時的硬件機制由晶體管的開關時間、晶體管特性電阻由晶體管的開關時間、晶體管特性電阻和特性電容、線路分布電阻和分布電容引和特性電容、線路分布電阻和分布電容引起。起。具
26、體內容可以參考數字邏輯設計的教材。具體內容可以參考數字邏輯設計的教材。電子科技大學實際信號傳輸延時的VHDL描述 分兩種:傳輸延時與慣性延時。分兩種:傳輸延時與慣性延時。 傳輸延時:傳輸延時: b = transport a after 20 ns; 慣性延時:慣性延時: b = a after 20 ns;電子科技大學傳輸延時 b = TRANSPORT a AFTER 20 nsb = TRANSPORT a AFTER 20 ns; 電子科技大學慣性延時 b = a AFTER 20 nsb = a AFTER 20 ns;電子科技大學功耗 與分布電容、邏輯電平門限、工作速率與分布電容、
27、邏輯電平門限、工作速率等決定。以后將具體講述這部分的內容。等決定。以后將具體講述這部分的內容。電子科技大學思考 現在你可以知道為什么在上一次的作業現在你可以知道為什么在上一次的作業題里,要求題里,要求std_logic的定義中,枚舉值的定義中,枚舉值為字符型,而不是整型為字符型,而不是整型電子科技大學小結 前面以前面以“模塊化硬件與進程模型模塊化硬件與進程模型”與與“信號傳輸模型信號傳輸模型”來講述了數字系統的來講述了數字系統的軟件仿真算法。軟件仿真算法。 學習目的:理解硬件描述語言的原理;學習目的:理解硬件描述語言的原理;了解數字系統的建模和仿真中要注意的了解數字系統的建模和仿真中要注意的問
28、題。問題。電子科技大學小結 算法要點:算法要點: 系統敏感的輸入信號產生變化,將激活一個仿真周系統敏感的輸入信號產生變化,將激活一個仿真周期;仿真過程中,信號變化期;仿真過程中,信號變化(包括進程調度導致的新包括進程調度導致的新的信號變化的信號變化)都會激活一個新的子仿真周期。都會激活一個新的子仿真周期。 仿真周期里可能包含多個子仿真周期;仿真周期里可能包含多個子仿真周期; 一個子仿真周期所耗費的硬件時間為一個一個子仿真周期所耗費的硬件時間為一個Delta延時,延時,理想情況下,理想情況下,Delta延時為延時為0; 子仿真周期子仿真周期(Delta延時延時)的增加,不會推進仿真時鐘的增加,不會推進仿真時鐘(即不會增加硬件時間即不會增加硬件時間); 一個子仿真周期內可能有多個進程被調度。一個子仿真周期內可能有多個進程被調度。電子科技大學小結 算法要點算法要點(接上一頁接上一頁) 導致硬件動作產生的信號才必須作為進程的敏感信導致硬件動作產生的信號才必須作為進程的敏感信號;號; 組合進程中,所有被讀取的信號組合進程中,所有被讀取的信號(包括中間信號包括中間信號)都都應該放到敏感信號表中;而時序進程則不一定;應該放到敏感信號表中;而時序進程則不一定; 信號賦值應該帶有延時,該延時正好等于一個信號賦值應該帶有延時,該延時正好等于一個Delta延時;延時; 信號的數據類型及
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作室設計與工作環境優化
- 工作中的時間管理與自律
- 工業設計與產品創新實踐
- 工業設計創新與技術趨勢
- 工業風餐廳裝修設計思路
- 工作場所中的安全衛生規范
- 工廠企業火災防范與應急處理
- 工程機械結構強度與穩定性研究
- 工程質量管理中的監理職責與實施策略
- 工程機械的故障診斷與維修
- 湛江市2024-2025學年初三預測密卷:化學試題試卷解析含解析
- DB35T 2191-2024 縣級國土空間總體規劃編審規程
- AQ 1083-2011 煤礦建設安全規范 (正式版)
- 2024年中華人民共和國企業所得稅年度納稅申報表(帶公式)20240301更新
- 江蘇省蘇州市常熟市2023-2024學年五年級下學期數學期末檢測
- 河南省洛陽市理工學院附中2025屆數學高一下期末考試試題含解析
- 珍惜時間三分鐘演講稿小學生(23篇)
- 交響音樂賞析智慧樹知到期末考試答案2024年
- 2024中考復習必背初中英語單詞詞匯表(蘇教譯林版)
- 大壩模型制作方案
- 2024年北京門頭溝區社區工作者招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論