兩種表達(dá)設(shè)計的方法
?。ㄟ^傳統(tǒng)的布爾邏輯方程;
它是組合型設(shè)計的唯一選擇方法,同時也可適用于某些寄存器型設(shè)計;
布爾方程由功能描述、真值表和/或時序圖共同推導(dǎo)出。
?。峭ㄟ^狀態(tài)機(jī)語法;
它是一種理想的 設(shè)計方法,適合對大型的寄存器型控制設(shè)計;也可用于pls 和prose器件的設(shè)計
通過功能描述、狀態(tài)表、狀態(tài)圖和時序圖等導(dǎo)出。
布爾方程用“積之和”形式,適用大多數(shù)pld器件的兩級“與-或”邏輯
習(xí)慣的設(shè)計方法是將設(shè)計需求用分離的邏輯(74系列)來實現(xiàn),這種用ssi和msi的設(shè)計可方便的用pld來完成,只須將 其換成積之和的布爾代數(shù)形式。
用pld器件以“積之和”形式直接完成一個設(shè)計能獲得一個快速的電路,也不必受固定ssi和msi功能塊的限制。
布爾邏輯方程除了定義邏輯功能 外,有利于記錄設(shè)計思想,可采用模塊化結(jié)構(gòu)。
可基于真值表或時序圖進(jìn)行設(shè)計
狀態(tài)機(jī)方法的描述
-功能描述
-可基于狀態(tài)圖、狀態(tài)表或時序圖行設(shè)計
-編寫狀態(tài)機(jī)文件
-匯編設(shè)計文件
基于真值表的設(shè)計
1、根據(jù)對設(shè)計的需求功能的描述、依據(jù)地址分配映射表和片選信號真值表,推導(dǎo)出地址譯碼器真值表。
注:另外三個附加的輸入信號
rw:讀寫信號,微處理產(chǎn)生,用來區(qū)分讀、寫周期。rom數(shù)據(jù)只能讀出,當(dāng)rw為高電平 “1”時,發(fā)出romcs1和romcs2;寫周期不發(fā)出這兩個信號;ramcs在讀、寫周期時都產(chǎn)生,不考慮rw狀態(tài)。
as:地址選通信號,高電平 “1”有效,微處理產(chǎn)生。僅當(dāng)?shù)刂肪€上栽有有效的地址時才有效;所有片選信號都要as信號選通。
init:系統(tǒng)初始化信號,以便實現(xiàn)“熱自舉”,類似reset;當(dāng)發(fā)出init信號時,不允許發(fā)出任何片選信號。
根據(jù)邏輯來寫布爾方程非常簡單和容易
/romcs1 = /a23*/a22*/a21*init*/as*rw
/romcs2 = /a23*/a22*a21*init*/as*rw
/ramcs = /a23*a22*/a21*init*/as
+ /a23*a22*a21*init*/as
+ a23*/a22*/a21*init*/as
+ a23*/a22*a21*init*/as
選擇器件時要保證有足夠的乘積項,每個“與”項使用器件的一個乘積項;以上乘積項最多為四個,pal16l8每一輸出有7個乘積項。
輸出極性問題:假設(shè)我們必須產(chǎn)生高電平有效的輸出,romcs1信號的輸出方程為:
romcs1 = /a23*/a22*/a21*init*/as*rw
由于器件pal16l8只有低電平有效的輸出端,因此方程的輸出極性必須加以轉(zhuǎn)換,以符合器件的輸出極性,運(yùn)用摩根定理:
/romcs1 = a23+a22+a21+/init+as+/rw
基于時序圖的設(shè)計
功能描述:在地址譯碼器中,init是系統(tǒng)初始化信號,可由pal16l8幾個未用的輸出端中的一個產(chǎn)生init信號;
在內(nèi)部:通過反饋,禁止片選信號產(chǎn)生;
在外部:可用于初始化其它系統(tǒng);
init由連接到pal16l8輸入端的復(fù)位(reset) 開關(guān)產(chǎn)生
為防止不必要的初始化,reset開關(guān)必須是防顫動的,即要求init信號維持“高”電平直到開關(guān)與底邊真正相接觸。一旦開關(guān)碰到底邊,信號init應(yīng)該低電平有效,且一直維持“低”電平不變,直到再次碰到頂邊。
防顫動電路的時序如下圖所示,信號top和信號bottom是可編程邏輯器件的輸入,在reset開關(guān)碰到頂邊和底邊時,這兩個信號分別被激活。
系統(tǒng)初始化復(fù)位開關(guān)和防顫動開關(guān)時序圖:
時序圖的每一事件(時刻)可寫出布爾邏輯方程:
(1)常態(tài)
init = /top
(2)開關(guān)從top 到bottom
init = top*bottom*init
(3)開關(guān)接觸bottom
/init = /bottom
(4)開關(guān)從bottom 到top
/init = /init*bottom*top
(5)回到常態(tài)
我們使用低電平有效器件,因此,可將兩個低電平有效的事件組合成
總的布爾方程為:
/init = /bottom+/init*bottom*top
= /bottom+/init*top
也可根據(jù)真值表和卡諾圖來完成:
編寫布爾邏輯方程應(yīng)注意:
真值表和時序圖方法對于編寫布爾邏輯方程沒有本質(zhì)的差別.某些設(shè)計者喜歡使用真值表,而另外一些設(shè)計者則寧愿從時序圖出發(fā)直接進(jìn)行設(shè)計。真值表方法使乘積項的利用率最佳,而時序圖方法則更直觀和形象,因為它保持了設(shè)計的透明度。
在兩種情況下,邏輯方程都應(yīng)當(dāng)由設(shè)計軟件加以簡化,以保證設(shè)計的可測試性。
大多數(shù)有經(jīng)驗的設(shè)計師都知道在進(jìn)行器件選擇時應(yīng)如何權(quán)衡各種關(guān)系,因而在構(gòu)思設(shè)計和選擇器件上可以節(jié)省許多時間.
通常的作法是:畫出要設(shè)計的邏輯功能的方塊圖,然后依據(jù)所需的輸入端。輸出端,雙向i/o端和乘積項數(shù)目,憑經(jīng)驗選取滿足這些條件pld器件.
?。抡嬲Z法
?。抡娴哪康脑谟跍y試在全部可能的輸入信號作用下輸出端的響應(yīng),以驗證它們是否象系統(tǒng)所要求的那樣工作。
-仿真的實質(zhì)是通過測試向量進(jìn)行,它們指定器件每個輸入端的狀態(tài),然后檢查輸出是否具有正確的響應(yīng)。
-仿真測試向量能夠查明設(shè)計方程中的任何錯誤和缺陷,這些錯誤和缺陷會影響被編程的邏輯操作。因此,仿真測試向量被 用作設(shè)計的調(diào)試工具。
-仿真向量最終將成為比較大的測試向量集合的一部分。 功能測試向量用來對編程后的實際器件進(jìn)行操作,以查清有缺陷 的任何器件。
?。抡嫦蛄炕蚴录梢灾苯訌脑O(shè)計的真值表和時序圖導(dǎo)出,所有信號的邏輯電平和邏輯功能可被展開,并由設(shè)計軟件重寫成 測試向量的形式。
仿真部分連同邏輯方程一起包括在設(shè)計文件中,在各種pld設(shè)計軟件中,盡管大多數(shù)依靠測試向量來驗證邏輯,幾乎不存在標(biāo)準(zhǔn)化的仿真表達(dá)式。
palasm2 軟件提供了一種先進(jìn)的事件驅(qū)動能力,它比仿真測試向量具有更好的透明度.( palasm2在下章介紹)
從地址譯碼器真值表可容易的地改寫成仿真向量真值表。如下圖,我們規(guī)定器件的輸入(a23、a22、a21、top、bottom、as、rw),并驗證器件的輸出 (romcs1、romcs2、ramcs、init)
根據(jù)仿真向量真值表,可進(jìn)行仿真測試程序設(shè)計。如下表的地址譯碼器palasm2軟件模擬仿真程序。
用來推導(dǎo)仿真向量的真值表
地址譯碼器的palasm2軟件模
擬仿真程序:
;讀地址有效
;不可能寫rom
; 建立romcs1地址
;讀周期有效romcs2地址
;不可能寫rom2
;建立ramcs地址
;讀周期有效ramcs地址
;寫地址有效ramcs地址
pld器件的編程和測試
設(shè)計的仿真工作完成后,最終要對器件進(jìn)行編程和測試.將jedec裝入編程器編程器,就可對器件進(jìn)行編程。
編程器在編程周期之后,還可對各個連接進(jìn)行驗證,驗證pld器件中連線的正確性.此外,編程器還能對已編程的器件施以讀操作,并提供測試、復(fù)制器件的能力。
pld測試可由編程器或其它測試裝置來完成,測試完成后,如果需要的話,還可對器件的保密熔絲進(jìn)行編程,以免被復(fù)制。
一旦jedec熔絲文件被下載,編程器就對器件進(jìn)行編程,然后pld器件便能投入使用
編程器可從各家廠商購得,但須注意mmi公司確認(rèn)的編程器必須具備正確的適用算法,并且滿足其它的基本規(guī)則。在購買編程器時,注意檢查一下該編程器是否適宜于要編程的器件。
現(xiàn)在有兩種類型的編程器供設(shè)計者選用,它們是菜單驅(qū)動的編程器和基于器件代碼的編程器.菜單驅(qū)動的編程器直接指示被編程的器件類型,而后一類編程器則要求用戶在編程前輸入器件代碼
器件的編程與測試流程圖
pal器件的編程
pal器件可以使用大多數(shù)標(biāo)準(zhǔn)的prom編程器進(jìn)行編程,只要給編程器配備合適的編程模塊和器件插座適配器。
從編程的角度看,pal器件和prom器件沒有任何差別。但prom器件一般一次完成,而對有些pal器件,必須:
在編程期間,pal器件的輸入引腳中有一半用于施加編程信號,余下的一半輸入引腳和輸出引腳一起尋址,實現(xiàn)對一部分熔絲的編程;然后,用于尋址和編程端的輸出引腳相互交換,對其余的熔絲編程。
器件被編程后,如果保持編程端為低電平狀態(tài),通過與編程操作相同的步驟,便可以驗證編程的正確性。
20系列(20腳)pal器件的編程
24系列(24腳) pal器件的編程
20系列(20腳)pal器件的編程
20引腳系列的pal器件采用低電壓、線性選擇方法對其熔斷絲進(jìn)行編程.編程陣列分成兩組,乘積項0-31為一組;乘積項32-63為另一組.編程操作時每個組的引腳配置圖如下圖 ,為了對某個特定熔斷絲編程,按下列步驟選擇輸入行和乘積行:
(1) 將輸出禁止信號od (output disable)升到高電平vihh 。
(2) 參見下表6-4-1,通過指定引腳i7、 i6 、 i5 、i4,、 i3 、 i2 、i1、 i0和l/r的狀態(tài)來選擇被編程熔斷絲所對應(yīng)的輸入行。
(3) 通過指定引腳a0、a1 、 a2 的狀態(tài)來選擇乘積行,參見表6-4-2.20系列pal器件最多有8個輸出端,每個輸出端最多對應(yīng)8個乘積行, a0--a1用來 選取8個乘積中的一行。
(4) 將引腳20即vcc酌電平升至vihh 。
(5) 根據(jù)選定的乘積行對相應(yīng)的輸出引腳on施加編程高點平vihh.y以對熔 斷絲編程,時序圖如圖6-4-2所示 。
(6) 將引腳20即vcc的電平降至6.0v。
(7) 對引腳clock施加脈沖信號,由輸出引腳on驗證編程結(jié)果。對于輸出低電平有效的pal器件,輸出應(yīng)為‘低’;對于輸出高電平有效的器件,輸出應(yīng)為‘高’。
(8) 將引腳20即vcc電平降到4.5v,并重復(fù)步驟(7)。
(9) 如果輸出驗證未通過,可重復(fù)步驟(1)-(8),多達(dá)5次。
重復(fù)上述步驟便可以對全部熔斷絲編程,編程時序圖參見圖6-4-2.為了防止進(jìn)一步的驗證;將引腳1和引腳10的電平升至vp,燒斷最后兩根熔斷絲.在此操作過程中,引腳20不使用。
l= 低電壓輸入電壓vil
h=高電壓輸入電壓vih
hh=高電平編程電壓vihh
z= 連至+5v電源的10k?電阻
24系列(24腳)pal器件的編程
24引腳系列的pal器件采用低電壓、線性選擇方法對其熔斷絲進(jìn)行編程.編程陣列分成兩組,乘積項0-39為一組;乘積項40-79為另一組.編程操作時每個組的引腳配置圖如6-4-3所示 ,為了對某個特定熔斷絲編程,按下列步驟選擇輸入行和乘積行:
(1) 將輸出禁止信號od (output disable)升到高電平vihh 。
(2) 參見下表6-4-4,通過指定引腳i9、 i8 、 i7、 i6 、 i5 、i4,、 i3 、 i2 、i1、 i0和l/r的狀態(tài)來選擇被編程熔斷絲所對應(yīng)的輸入行。
(3) 通過指定引腳a0、a1 、 a2 的狀態(tài)來選擇乘積行,參見表6-4-5.24系列pal器件最多有10個輸出端,每個輸出端最多對應(yīng)8個乘積行, a0~a2用來 選取8個乘積中的一行。
(4) 將引腳20即vcc酌電平升至vihh 。
(5) 根據(jù)選定的乘積行對相應(yīng)的輸出引腳on施加編程高點平vihh.y以對熔 斷絲編程,時序圖如圖6-4-2所示 。
(6) 將引腳20即vcc的電平降至6.0v。
(7) 對引腳clock施加脈沖信號,由輸出引腳on驗證編程結(jié)果。對于輸出低電平有效的pal器件,輸出應(yīng)為‘低’;對于輸出高電平有效的器件,輸出應(yīng)為‘高’。
(8) 將引腳20即vcc電平降到4.5v,并重復(fù)步驟(7)。
(9) 如果輸出驗證未通過,可重復(fù)步驟(1)-(8),多達(dá)5次。
重復(fù)上述步驟便可以對全部熔斷絲編程,編程時序圖參見圖6-4-2.為了防止進(jìn)一步的驗證;將引腳1和引腳10的電平升至vp,燒斷最后兩根熔斷絲.在此操作過程中,引腳20不使用。
l= 低電壓輸入電壓vil
h=高電壓輸入電壓vih
hh=高電平編程電壓vihh
z= 連至+5v電源的10k?電阻
邏輯設(shè)計的基本步驟
-設(shè)計構(gòu)思
-建立布爾方程
-器件的選擇
-建立設(shè)計文件
-匯編生成jedec文件
-仿真基本邏輯門
-運(yùn)行仿真程序
-器件的編程