




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
構造體邏輯描述第一頁,共35頁。邏輯描述根據(jù)邏輯表達式或真值表進行描述程序簡單,易于綜合,結(jié)果最優(yōu)。對于復雜實體,難以根據(jù)功能反推得邏輯表達式或真值表,故多用于細節(jié)的實現(xiàn) 第二頁,共35頁。邏輯描述基本語句:并行信號賦值語句。并行信號賦值語句的特點并行性:執(zhí)行不依賴于書寫順序延遲性:必須要有延遲——對應硬件并行信號賦值語句格式:信號名<=延遲選項運算表達式延遲表達式inertial(默認),transportS<=xxoryafter10ns;第三頁,共35頁。并行信號賦值語句不允許有變量賦值<=前不能出現(xiàn)變量,只能是信號進程之間用信號聯(lián)系,不能由變量聯(lián)系
“運算表達式”部分須為一個或多個信號的運算表達式這些信號相當于敏感信號,發(fā)生變化時才觸發(fā)語句執(zhí)行執(zhí)行一次後,又進入等待,等下次信號發(fā)生變化第四頁,共35頁。對全加器進行邏輯描述的程序:Architectureb_adderoffull_adderis Signals:bit;Begin s<=xXORyafter10ns; Sum<=sXORCinafter20ns; Cout<=(sANDCin)OR(xANDy)after20ns;Endb_adder;第五頁,共35頁。信號的延遲信號賦值語句格式:信號名<=延遲選項運算表達式延遲表達式;延遲選項:慣性延遲:器件延遲,對于持續(xù)時間短于器件慣性的脈沖在器件上的傳輸進行限制傳輸延遲:導線延遲,無論輸入脈沖多窄都能在輸出端不失真地再現(xiàn)第六頁,共35頁。信號延遲的意義更真實地反映硬件保證模擬結(jié)果的正確性RS觸發(fā)器:
begin --(已將q初始化為1,qb為0) q<=snandqbafter20ns; qb<=rnandqafter20ns; end….qrqbs1010101020ns40ns60ns0ns第七頁,共35頁。信號延遲的意義如果沒有指定延遲時間δ延遲(?t延遲,極小量,大于零,但小于任何指定的延時)RS觸發(fā)器:
begin --(已將q初始化為1,qb為0) q<=snandqb; qb<=rnandq; end….qrqbs10101010δ2δ3δ0第八頁,共35頁。慣性延遲實際器件對過短脈沖無響應信號名<=reject時間值inertial運算表達式延遲表達式;Reject后面的時間值為短脈沖閾值持續(xù)脈沖寬度大于該值的可以被傳輸,過濾毛刺缺省reject時,閾值由第一個after後的延遲值決定Y<=reject3nsinertial‘1’after5ns;--脈寬3X<=inertial‘1’after5ns; --脈寬5注意P189第九頁,共35頁。傳輸延遲無論脈寬多窄都能無失真?zhèn)鬏敚〝?shù)據(jù)線)信號名<=transport運算表達式延遲表達式;延遲表達式表示在導線上產(chǎn)生的延遲Sig_out<=transportsig_inafter20ns;Sig_inSig_out101020ns40ns60ns0ns第十頁,共35頁。事件的先后與延遲Ifsig_in=‘1’then Sig_out<=transportsig_inafter60ns;Else
Sig_out<=transportsig_inafter20ns;Endif; sig_in為敏感信號,跳變兩次,故上述if語句被執(zhí)行兩次Sig_inSig_out101020ns40ns60ns0ns第十一頁,共35頁。實際設計中,并行信號一般不寫延遲表達式,而用默認延遲,尤其是邏輯選通信號(信號直接賦值)。模擬開關等選通時間較慢,需指定延遲,如模擬多路選擇器。WithCselect S<=s0after50nswhen0; S<=s1after50nswhen1; S<=s2after50nswhen2; S<=s3after50nswhen3;第十二頁,共35頁。條件信號賦值語句條件賦值語句指定在不同的條件下對信號進行不同的賦值類似于if條件順序語句格式:[標號:]信號<=延遲選項
表達式1when條件1else
……
表達式n-1when條件n-1else
表達式n;特殊形式的并行信號賦值語句第十三頁,共35頁。等價于含有一個if語句的進程:
process(敏感信號表)
begin
if條件1then
信號<=延遲選項表達式1;
……
elsif條件n-1then
信號<=延遲選項表達式n-1;
else
信號<=延遲選項表達式n;
endif;
endprocess;
第十四頁,共35頁。例:
y<=transport
'1'afterDelaywhenA=1andB=1else
'0'afterDelay;等價于:
process(A,B)
begin
ifA=1andB=1then
y<=transport'1'afterDelay;
else
y<=transport'0'afterDelay;
endif;
endprocess;第十五頁,共35頁。選擇信號賦值語句格式:
with選擇表達式select
信號<=延遲選項
表達式1when分支1,
……
表達式nwhen分支n;類似于case分支語句特殊形式的并行信號賦值語句第十六頁,共35頁。等價于
process(敏感信號表)
begin
case
選擇表達式is
when
分支1=>
信號<=延遲選項表達式1;
……
when
分支n=>
信號<=延遲選項表達式n;
endcase;
endprocess;
第十七頁,共35頁。例: withSelselect
Dout<=
“0001”
when
“00”,
“0010”
when
“01”,
“0100”
when
“10”,
“1000”
when
“11”;
等價于:
process(Sel)
begin
caseSelis
when"00"=>
Dout<="0001";
when"01"=>
Dout<="0010";
when"10"=>
Dout<="0100";
when"11"=>
Dout<="1000";
endcase;
endprocess;第十八頁,共35頁。條件信號賦值語句的優(yōu)先級Entitypriority_encoderisPort(I:instd_logic_vector(7downto0);A:outstd_logic_vector(2downto0));end;ArchitectureDataofpriority_encoderisBeginA<=“111”whenI(7)=‘1’else“110”whenI(6)=‘1’else“101”whenI(5)=‘1’else“100”whenI(4)=‘1’else“011”whenI(3)=‘1’else“010”whenI(2)=‘1’else“001”whenI(1)=‘1’else“000”whenI(0)=‘1’else“111”;end高低優(yōu)先級I7I0帶有輸入優(yōu)先級的編碼器(先被判斷的優(yōu)先級最高,如同if語句):100000010011000000001111
111101011第十九頁,共35頁。并行語句中的條件賦值語句和選擇賦值語句分別等價于只含有條件結(jié)構(if)和選擇結(jié)構(case)的進程。要注意并行語句中沒有if和case語句的形式,只有with和when條件信號賦值和選擇信號賦值語句只能出現(xiàn)在Architecture等結(jié)構中,而不能出現(xiàn)在進程和子程序中。第二十頁,共35頁。信號源和決斷信號信號源(signalsource)是指對該信號賦值的進程,如果一個進程中為某一個信號賦值,則稱這個進程是該信號的一個源。在并行語句結(jié)構中,一個并行賦值語句即為一個信號源。例:
architectureArchiofExamis
begin
F<=transport1after1ns;
F<=transport2after1ns;
endArchi;F有2個信號源(若F事先未被定義為決斷信號,則無法編譯通過)第二十一頁,共35頁。決斷信號(resolvedsignal)一個信號通常只具有一個信號源,有時出現(xiàn)多個源驅(qū)動同一個信號的情況“線或”或者“線與”是一種典型的例子。在“線或”或者“線與”的電路中,傳遞給一個元件的值是多個門的輸出線連在一起的結(jié)果。這時需要對多個源得到的信號值進行決斷,以便得到一個確定的值。VHDL為設計者提供了這種功能。在VHDL中,具有多個驅(qū)動源的信號叫做決斷信號。從邏輯上,先有決斷信號,后有決斷函數(shù);但從語法上,先定義決斷函數(shù),再根據(jù)決斷函數(shù)定義決斷信號。第二十二頁,共35頁。決斷函數(shù)resolutionfunction:由用戶編寫,用以指定對信號決斷的方法的函數(shù)決斷信號即用決斷函數(shù)來定義的信號,格式:Signal決斷信號名:決斷函數(shù)名
[類型][賦初值];輸入:基類型是決斷類型的一維非限定性數(shù)組值,輸出:一個決斷類型的值。例如,已經(jīng)定義了下面的類型聲明;typeBit4is(X,1,0,Z);typeBit4_Vectorisarray
(Integerrange<>)
ofBit4;
如果一個數(shù)據(jù)類型為Bit4的信號有多個驅(qū)動源,那么我們可以聲明一個用以決斷Bit4這種類型信號的決斷函數(shù),如下所示:functionWired_Or(Input:Bit4_Vector)returnBit4;第二十三頁,共35頁。用這個決斷函數(shù)定義決斷類型,再用此決斷類型去定義決斷信號:subtype
Resolved_Wire
is
Wired_OrBit4;--決斷類型,帶有決斷函數(shù)名的子類型定義
signalResolved_Signal:Resolved_Wire;--決斷信號,其類型為決斷類型
也可以將決斷信號直接包含在信號聲明中,即把上面的決斷類型和決斷信號的聲明合在一起:
signalResolved_Signal:Wired_OrBit4;
完整例子第二十四頁,共35頁。決斷信號需要在聲明信號類型時特別指明。一個決斷信號必須預先給定一個與之關聯(lián)的決斷函數(shù),以便在各個源的值不相同時按照決斷函數(shù)的規(guī)定得到確定的值。如果一個非決斷信號含有多個源,則是不允許的,將導致語法錯誤。第二十五頁,共35頁。塊語句:VHDL語言結(jié)構體的子結(jié)構采用子結(jié)構的原因1、電路規(guī)模的日益增大;2、增加設計的條理性;3、分工合作的需要;4、增強可讀性,便于共享和交流;子結(jié)構的分類塊語句結(jié)構、進程語句結(jié)構、子程序結(jié)構第二十六頁,共35頁。塊語句結(jié)構思想在傳統(tǒng)的硬件電路設計過程中,一個大規(guī)模的硬件電路設計往往包含一個總電路原理圖和若干張子原理圖。對于VHDL語言描述來說,如果一個硬件電路設計的結(jié)構體對應于總電路原理圖,那么這時每一子原理圖就可以采用一個塊語句結(jié)構來進行描述。這就是塊語句結(jié)構思想:塊即模塊。第二十七頁,共35頁。一、塊語句的語法結(jié)構[塊標號:]BLOCK[衛(wèi)士表達式][類屬子句[類屬接口表;]];[端口子句[端口接口表;]];[塊說明部分];BEGIN<塊語句部分>;ENDBLOCK[塊標號];塊標號:用來標識該塊語句的標識符;衛(wèi)士表達式:用作塊語句的保護;類屬子句:用于類屬參數(shù)的定義;端口子句:用于與外部接口的定義;塊說明部分:對塊語句中要用到的信號、常數(shù)、元件和子程序等進行說明;塊語句部分:描述塊語句的具體功能,可包含結(jié)構體中的任何并行描述語句第二十八頁,共35頁。二、塊語句的保護(1)塊語句保護的原因1、簡單塊語句仿真時會被無條件地執(zhí)行;2、實際的硬件電路只有在滿足一定條件時才會工作;綜合1、2兩點,塊語句應通過一種特殊的控制方式來實現(xiàn),即進行塊語句的保護。塊語句保護的方法通過衛(wèi)士表達式來進行控制:衛(wèi)士表達式為真時,執(zhí)行塊語句;否則不執(zhí)行塊語句。第二十九頁,共35頁。二、塊語句的保護(2)塊語句保護的實例——鎖存器ARCHITECTURErtlOFdffISBEGINblock1:BLOCK(clk=’1’)--(衛(wèi)士表達式)BEGINq<=GUARDEDdAFTER3ns;qb<=GUARDED(NOTd)AFTER5ns;ENDBLOCKblock1;ENDrtl;第三十頁,共35頁。三、塊語句的一個完整實例一位全加器ARCHITECTURErtlOFfull_adderISBEGINexample:BLOCKPORT(x:INstd_logic;y:INstd_logic;Cin:INstd_logic;Cout:OUTstd_logic;Sum:OUTstd_logic);PORTMAP(x=>A,y=>B,Cin=>Cin,Cout=>Co,Sum=>S);SIGNALtmp1,tmp2:std_l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地買賣合同范本
- 農(nóng)村建筑施工合同范本
- 買賣冬蟲夏草合同范本
- 勘界測繪合同范例
- 再婚買房合同范本
- 個體簡易合同范本
- 包工安裝護欄合同范本
- 單位銷售崗位勞動合同范本
- 俱樂部裝修合同范本
- 養(yǎng)殖合作建設合同范本
- Y -S-T 1700-2024 銀礦采選業(yè)綠色工廠評價要求(正式版)
- 中職語文高教版(2023-2024)基礎模塊上冊二《風景談》公開課一等獎創(chuàng)新教學設計
- (高清版)JTGT 5440-2018 公路隧道加固技術規(guī)范
- 簡單的痛(復雜的評估)-醫(yī)學評估
- 2024年時政試題庫(綜合卷)
- 第59講-熱重曲線分析(課件)
- 陪診服務項目計劃書
- Unit7ArtLesson2BeijingOpera課件高中英語北師版
- 數(shù)學之美:欣賞數(shù)學的優(yōu)雅與美麗
- 2023高考語文文言文復習:《說苑》練習題(含答案解析)
- 成都印鈔公司招聘考試題
評論
0/150
提交評論