第一或門[0R01]的輸出端信號為M總線讀(m_rd),連接到第三或門[0R03]的輸入端I并輸出到時序處理電路,第五等于比較器[E05]的OUT輸出端連接到第二或門[0R02]輸入端1,第六等于比較器[E06]的OUT輸出端連接到第二或門[0R02]輸入端2,第二或門[0R02]的輸出端信號為M總線寫連接到第三或門[0R03]的輸入端2并輸出到時序處理電路,第三或門[0R03]的輸出端信號為M總線讀/寫(m_rd_wt),連接到第一狀態(tài)機模塊[U01]的Tl輸入端并輸出到時序處理電路;第七等于比較器[E07]的OUT輸出端信號為M總線讀寫無效(m_rd_wt_end),連接到第一狀態(tài)機模塊[U01]的T6輸入端并輸出到時序處理電路;
[0043]第一多路復用器[M01]的DO輸入端連接到第二 D觸發(fā)器[D02]的Q輸出端,第一多路復用器[M01]的Dl輸入端連接到低電平,第一多路復用器[M01]的S選擇端連接到ISA總線時鐘上升沿isa_bClk_pedge,第一多路復用器[M01]的Q輸出端連接到第二多路復用器[M02]的DO輸入端,第二多路復用器[M02]的Dl輸入端連接到高電平,第二多路復用器[MO2]的S選擇端連接到ISA總線時鐘下降沿isa_bclk_nedge,第二多路復用器[M02]的Q輸出端連接到第二 D觸發(fā)器[D02]的D輸入端,第二 D觸發(fā)器[D02]的時鐘端連接到系統(tǒng)時鐘SyS_clk,第二 D觸發(fā)器[D02]的EN使能端連接到狀態(tài)信號BALE,第二 D觸發(fā)器[D02]的CLR復位端連接到總復位rst,第二 D觸發(fā)器[D02]的Q輸出端信號即為ISA總線鎖存isa_bale ;第一與門[AND01]的輸入端I連接到ISA總線時鐘上升沿isa_bclk_pedge,第一與門[AND01]的輸入端2連接到ISA總線鎖存isa_bale,第一與門[AND01]的輸出端連接到第一狀態(tài)機模塊[U01]的T2輸入端;
[0044]第三D觸發(fā)器[D03]的D輸入端與第五多路復用器[M05]的Q輸出端相連,第三D觸發(fā)器[D03]的時鐘端連接到系統(tǒng)時鐘sys_clk,第三D觸發(fā)器[D03]的EN使能端連接到狀態(tài)信號CHRDY,第三D觸發(fā)器[D03]的CLR復位端連接到總復位rst,第三D觸發(fā)器[D03]的Q輸出端與第一小于比較器[LT01]的A輸入端、第三多路復用器[M03]的DO輸入端、第二加法器[A02]的A輸入端、第八等于比較器[E08]的A輸入端、第五多路復用器[M05]的DO輸入端相連,第一小于比較器[LT01]的B輸入端從高位到低位連接到電平狀態(tài)2’ bll,第一小于比較器[LT01]的OUT輸出端連接到第四多路復用器[M04]的S選擇端,第三多路復用器[M03]的Dl輸入端從高位到低位連接到電平狀態(tài)2’ b00,第三多路復用器[M03]的Q輸出端連接到第四多路復用器[M04]的DO輸入端,第二加法器[A02]的B輸入端從高位到低位連接到電平狀態(tài)2’ bOl,第二加法器[A02]的OUT輸出端連接到第四多路復用器[M04]的Dl輸入端,第四多路復用器[M04]的Q輸出端連接到第五多路復用器[M05]的Dl輸入端,第五多路復用器[M05]的S選擇端與第二與門[AND02]的輸入端I相連并連接到ISA總線時鐘上升沿isa_bclk_pedge,第八等于比較器[E08]的B輸入端從高位到低位連接到電平狀態(tài)2’ bll,第八等于比較器[E08]的OUT輸出端連接到第二與門[AND02]的輸入端3,第二與門[AND02]的輸入端2連接到ISA總線從設備就緒isa_chrdy,第二與門[AND02]的輸出端連接到第一狀態(tài)機模塊[U01]的T4輸入端;
[0045]第一狀態(tài)機模塊[U01]的T3輸入端連接到ISA總線時鐘下降沿isa_bclk_nedge,第一狀態(tài)機模塊[U01]的T5輸入端連接到ISA總線時鐘上升沿isa_bclk_pedge,第一狀態(tài)機模塊[U01]的CLK時鐘端連接到系統(tǒng)時鐘sys_Clk,第一狀態(tài)機模塊[U01]的CLR復位端連接到總復位rst,第一狀態(tài)機模塊[U01]的state輸出端信號包括狀態(tài)信號IDLE、BALE、RD_WT、CHRDY, DATA、XACK, BT_END,分別輸出到時序處理電路;
[0046]所述第一狀態(tài)機模塊[U01]采用系統(tǒng)時鐘sys_clk作為狀態(tài)機的工作時鐘,第一狀態(tài)機模塊[U01]的狀態(tài)轉(zhuǎn)移條件包括Tl、T2、T3、T4、T5、T6,有效狀態(tài)包括statel、state2、state3、state4、state5、state6、state7,分別對應狀態(tài)信號 IDLE、BALE、RD_WT、CHRDY, DATA、XACK, BT_END (均為高電平有效),總復位rst有效時系統(tǒng)處于statel狀態(tài),狀態(tài)信號IDLE有效,在總復位rst撤銷的正常工作條件下,當Tl無效時(Tl = O),狀態(tài)機處于statel狀態(tài),當Tl有效時(Tl = I),狀態(tài)機轉(zhuǎn)移到state2狀態(tài),狀態(tài)信號BALE有效,當T2無效時,狀態(tài)機處于state2狀態(tài),當T2有效時(T2 = I),狀態(tài)機轉(zhuǎn)移到state3狀態(tài),狀態(tài)信號RD_WT有效,當T3無效時,狀態(tài)機處于state3狀態(tài),當T3有效時(T3 = I),狀態(tài)機轉(zhuǎn)移到state4狀態(tài),狀態(tài)信號CHRDY有效,當T4無效時,狀態(tài)機處于state4狀態(tài),當T4有效時(T4 = I),狀態(tài)機轉(zhuǎn)移到state5狀態(tài),狀態(tài)信號DATA有效,當T5無效時,狀態(tài)機處于state5狀態(tài),當T5有效時(T5 = I),狀態(tài)機轉(zhuǎn)移到state6狀態(tài),狀態(tài)信號XACK有效,state6狀態(tài)停留一個系統(tǒng)時鐘(sys_clk)之后,轉(zhuǎn)移到state7狀態(tài),當T6無效時,狀態(tài)機處于state7狀態(tài),狀態(tài)信號BT_END有效,當T6有效時(T6 = I),狀態(tài)機轉(zhuǎn)移到statel狀態(tài),完成一次狀態(tài)機的狀態(tài)轉(zhuǎn)移操作。
[0047]狀態(tài)轉(zhuǎn)移電路主要完成狀態(tài)機的狀態(tài)轉(zhuǎn)移控制,當進行Multibus總線存儲器讀操作時,[m_1wc,m_mwtc, m_1rc, m_mrdc] = 4’ bll 10 = 4’ hE,當進行 Multibus 總線 I/O 讀操作時,[m_1wc,m_mwtc,m_1rc,m_mrdc] = 4’ bllOl = 4’ hD,當進行 Multibus 總線存儲器寫操作時,[m_1wc,m_mwtc,m_1rc,m_mrdc] = 4’ blOll = 4’ hB,當進行 Multibus總線 I/O 寫操作時,[m_1wc,m_mwtc, m_1rc, m_mrdc] = 4’ bOlll = 4’ h7 ;在 Multibus總線讀寫操作命令結(jié)束時,[m_1wc,m_mwtc, m_1rc,m_mrdc] = 4’ bllll = 4’ hF ;因此,第一或門[0R01]的輸出端信號即為M總線讀m_rd,第二或門[0R02]的輸出端信號即為M總線寫m_wt,第三或門[0R03]的輸出端信號(也即第一狀態(tài)機模塊[U01]的狀態(tài)轉(zhuǎn)移條件Tl)為M總線讀/寫m_rd_wt ;當出現(xiàn)有效的M總線讀命令時,m_rd有效,當出現(xiàn)有效的M總線寫命令時,m_wt有效,當出現(xiàn)有效的M總線讀或?qū)懨顣r,m_rd_wt有效,即Tl有效;當M總線讀寫命令結(jié)束時,m_rd_wt_end有效,即第一狀態(tài)機模塊[U01]的狀態(tài)轉(zhuǎn)移條件T6有效;
[0048]第一多路復用器[M01]、第二多路復用器[M02]、第二 D觸發(fā)器[D02]組成ISA總線鎖存isa_bale產(chǎn)生電路;當總復位rst有效時,第二 D觸發(fā)器[D02]的Q輸出端信號(即ISA總線鎖存isa_bale)為低電平,在state2狀態(tài)下,狀態(tài)信號BALE有效的ISA總線時鐘下降沿,ISA總線鎖存isa_bale變?yōu)楦唠娖?,在ISA總線鎖存isa_bale變?yōu)楦唠娖街蟮腎SA總線時鐘上升沿,ISA總線鎖存isa_bale變?yōu)榈碗娖?,ISA總線鎖存isa_bale保持半個ISA總線時鐘周期;在ISA總線鎖存isa_bale的高電平結(jié)束時的ISA總線時鐘上升沿,第一狀態(tài)機模塊[U01]的狀態(tài)轉(zhuǎn)移條件T2有效;
[0049]當總復位rst有效時,第三D觸發(fā)器[D03]的Q輸出端信號為2’ b00,在state4狀態(tài)下,狀態(tài)信號CHRDY有效,第三D觸發(fā)器[D03]與第三多路復用器[M03]、第四多路復用器[M04]、第五多路復用器[M05]、第一小于比較器[LT01]、第二加法器[A02]組成一個受控計數(shù)器,計數(shù)信號isa_ws_cnt從2’ b00開始按照ISA總線時鐘上升沿isa_bclk_pedge進行加I計數(shù);當isa_ws_cnt為2’bll時,如果ISA總線從設備就緒isa_chrdy為高電平(就緒),計數(shù)信號isa_ws_cnt清零為2’b00,如果ISA總線從設備就緒isa_chrdy為低電平(未就緒),計數(shù)信號isa_ws_cnt保持為2’bll ;在計數(shù)信號isa_ws_cnt為2’bll并且ISA總線從設備就緒isa_chrdy為高電平(就緒)時的ISA總線時鐘上升沿下,第一狀態(tài)機模塊[U01]的狀態(tài)轉(zhuǎn)移條件T4有效;
[0050]標準的ISA總線操作周期(無插入等待周期)為六個ISA總線時鐘周期,可能的插入等待周期位于第五ISA總線操作周期和第六ISA總線操作周期之間;即使出現(xiàn)插入等待周期,本文中仍然把插入等待周期之后的這個ISA總線操作周期稱為第六ISA總線操作周期。
[0051]狀態(tài)機的statel狀態(tài)對應復位狀態(tài)、總線空閑狀態(tài)、第一 ISA總線操作周期的前半周期,狀態(tài)機的state2狀態(tài)對應第一 ISA總線操作周期的后半周期,狀態(tài)機的state3狀態(tài)對應第二 ISA總線操作周期的前半周期,狀態(tài)機的state4狀態(tài)對應第二 ISA總線操作周期的后半周期到第五ISA總線操作周期和可能的插入等待周期,狀態(tài)機的state5狀態(tài)對應第六ISA總線操作周期,狀態(tài)機的state6狀態(tài)對應第六ISA總線操作周期之后的I個系統(tǒng)時鐘周期,狀態(tài)機的state6狀態(tài)持續(xù)到M總線讀寫命令結(jié)束。
[0052]在復位或總線空閑狀態(tài)下,狀態(tài)機處于statel狀態(tài),狀態(tài)信號IDLE有效;當出現(xiàn)M總線讀或?qū)懖僮髅顣r,狀態(tài)機轉(zhuǎn)移到state2狀態(tài),狀態(tài)信號BALE有效;在state2狀態(tài)下的ISA總線時鐘下降沿,產(chǎn)生半個ISA總線周期寬度的鎖存信號ISA總線鎖存isa_bale,在ISA總線鎖存isa_bale變?yōu)楦唠娖街蟮腎SA總線時鐘上升沿,狀態(tài)機轉(zhuǎn)移到state3狀態(tài),狀態(tài)信號RD_WT有效;在state3狀態(tài)下的ISA總線時鐘下降沿,狀態(tài)機轉(zhuǎn)移到state4狀態(tài),狀態(tài)信號CHRDY有效;在state4狀態(tài)下,從第三ISA總線操作周期計數(shù)到第五ISA總線操作周期,在第五ISA總線操作周期的ISA總線時鐘上升沿,判斷ISA總線從設備就緒isa_chrdy是否為高電平(高電平為就緒),如果isa_chrdy為低電平(未就緒),則進入等待周期,如果isa_chrdy為高電平(就緒),狀態(tài)機轉(zhuǎn)移到state5狀態(tài),狀態(tài)信號DATA有效;在state5狀態(tài)下的ISA總線時鐘上升沿,狀態(tài)機從state5狀態(tài)轉(zhuǎn)移到state6狀態(tài),狀態(tài)信號XACK有效;state6狀態(tài)占用一個系統(tǒng)時鐘周期直接跳轉(zhuǎn)到state7狀態(tài),狀態(tài)信號BT_END有效;在state7狀態(tài)下,等待M總線讀寫命令結(jié)束后跳轉(zhuǎn)到statel狀態(tài),結(jié)束本次狀態(tài)轉(zhuǎn)移操作。
[0053]結(jié)合附圖1、附圖4說明時序處理電路的電路的外部連接、組成模塊和主要功能。
[0054]時序處理電路輸入的系統(tǒng)信號包括系統(tǒng)時鐘(sys_clk)與總復位(rst),時序處理電路輸入的來自時鐘分頻與取沿電路的信號包括ISA總線時鐘上升沿(isa_bclk_pedge)和ISA總線時鐘下降沿(isa_bclk_nedge),時序處理電路與Multibus三總線連接的信號包括M總線存儲器讀(m_mrdc,低有效)、M總線存儲器寫(m_mwtc,低有效)、M總線I/O讀(m_1rc,低有效)、M總線I/O寫(m_1wc,低有效)、M總線地址(m_addr)、M總線數(shù)據(jù)(m_dat)、M總線傳輸確認(m_xack,低有效),時序處理電路與ISA三總線相連的信號包括ISA總線存儲器讀(isa_memr,低有效)、ISA總線存儲器寫(isa_memw,低有效)、ISA總線I/O讀(isa_1r,低有效)、ISA總線I/O寫(isa_1w,低有效)、ISA總線地址(isa_addr)、ISA總線數(shù)據(jù)(isa_dat),時序處理電路接收的狀態(tài)轉(zhuǎn)移電路的輸出信號包括M總線讀(m_rd,高有效)、M總線寫(m_wt,高有效)、M總線讀/寫(m_rd_wt,高有效)、M總線讀寫無效(m_rd_wt_end,高有效)、ISA總線鎖存(isa_bale,高有效)、狀態(tài)信號IDLE、BALE、RD_WT、CHRDY, DATA、XACK, BT_END (均為高電平有效);
[0055]時序處理電路包括地址轉(zhuǎn)換電路、讀寫命令轉(zhuǎn)換電路、數(shù)據(jù)寫轉(zhuǎn)換電路、數(shù)據(jù)讀轉(zhuǎn)換電路、反饋電路。地址轉(zhuǎn)換電路、讀寫命令轉(zhuǎn)換電路、數(shù)據(jù)寫轉(zhuǎn)換電路、數(shù)據(jù)讀轉(zhuǎn)換電路、反饋電路均采用系統(tǒng)時鐘(sys_Clk)作為工作時鐘,采用總復位(rst)作為復位信號。
[0056]地址轉(zhuǎn)換電路用于實現(xiàn)M總線地址(m_addr)到ISA總線地址(isa_addr)的讀寫時序轉(zhuǎn)換,輸入的時序控制信號包括M總線讀/寫(m_rd_wt)、ISA總線鎖存(isa_bale)、狀態(tài)信號IDLE ;
[0057]讀寫命令轉(zhuǎn)換電路用于實現(xiàn)M總線讀寫操作命令(M總線存儲器讀m_mrdC、M總線存儲器寫m_mwtc、M總線I/O讀m_1rc、M總線I/O寫m_1wc)到ISA總線讀寫操作命令(ISA總線存儲器讀isa_memr、ISA總線存儲器寫isa_memw、ISA總線I/O讀isa_1r、I/O總線I/O寫isa_1w)的讀寫時序轉(zhuǎn)換,輸入的時序控制信號包括m總線讀/寫(m_rd_wt)、ISA總線時鐘上升沿(isa_bclk_pedge)、ISA總線時鐘下降沿(isa_bclk_nedge)