|
|
1. 從設(shè)備waitrequest的實(shí)現(xiàn)
在從設(shè)備中,waitrequest信號是可選的,只有在可變延時(shí)的傳輸中才需要實(shí)現(xiàn)。該信號必須在chipselect信號有效的同一個(gè)時(shí)鐘周期內(nèi)由從設(shè)備給出。系統(tǒng)互連在下一個(gè)時(shí)鐘沿必須采樣到該信號的有效電平并保持傳輸控制信號有效,直到該信號撤除。從設(shè)備在數(shù)據(jù)準(zhǔn)備好之后撤除該信號,系統(tǒng)互連在該信號失效后的下一個(gè)時(shí)鐘上升沿采樣讀出數(shù)據(jù)或結(jié)束寫入傳輸。 由于該信號的響應(yīng)要求很快,看起來只能采用異步邏輯實(shí)現(xiàn)該信號。其實(shí)不然,由于Avalon-MM接口規(guī)范沒有規(guī)定waitrequest信號在傳輸之前的狀態(tài),所以該信號可以在傳輸之前保持有效電平,需要設(shè)計(jì)的是該信號在數(shù)據(jù)有效之后的撤除邏輯。
waitrequest信號有效時(shí),系統(tǒng)互連進(jìn)入等待狀態(tài);換一個(gè)角度看,waitrequest信號失效時(shí)標(biāo)志著傳輸數(shù)據(jù)的有效讀出或有效寫入。也就是說,waitrequest信號和傳輸有效信號(接口規(guī)范中沒有規(guī)定,在自定義接口的握手邏輯中經(jīng)常用到)是互補(bǔ)的。這樣一來,就可以把傳輸有效信號(在讀出操作中是數(shù)據(jù)有效,在寫入操作中是寫入有效)取反作為waitrequest信號。
這樣看來,waitrequest信號的邊沿等價(jià)于傳輸有效信號的邊沿,只是有效電平相反。
2. 主設(shè)備waitrequest的實(shí)現(xiàn)
在主設(shè)備中,waitrequest信號是必需的,一方面是與帶延時(shí)的從設(shè)備連接的需要,另一方面是支持系統(tǒng)互連邏輯仲裁主設(shè)備訪問的需要。
當(dāng)該信號有效時(shí),主設(shè)備需要維持所有的傳輸控制信號內(nèi)容不變,直到該信號撤除。
該信號由系統(tǒng)互連邏輯在主設(shè)備發(fā)起傳輸?shù)耐粋(gè)時(shí)鐘周期內(nèi)給出。主設(shè)備可以在發(fā)起傳輸之后的第一個(gè)時(shí)鐘沿采樣該信號并決定是否進(jìn)入等待狀態(tài)。
由于對該信號的響應(yīng)可以在發(fā)起傳輸后的下一個(gè)時(shí)鐘驅(qū)動(dòng),所以可以采用狀態(tài)機(jī)實(shí)現(xiàn)上述邏輯:在m_start信號有效后,狀態(tài)機(jī)跳轉(zhuǎn)至M_ACTIVE;在該狀態(tài),主設(shè)備驅(qū)動(dòng)傳輸控制信號有效;如果在下一個(gè)時(shí)鐘沿到來時(shí)waitrequest信號為無效,則該次傳輸成功結(jié)束;反之,狀態(tài)機(jī)在M_ACTIVE等待,并保持所有的傳輸控制信號不變,直到waitrequest信號無效,該次傳輸成功結(jié)束,狀態(tài)機(jī)回到M_IDLE。

|
|