總線控制邏輯的VHDL設(shè)計(jì)仿真與測試
計(jì)算機(jī)系統(tǒng)是由許多具有獨(dú)立功能的模塊互相連接而成的。隨著計(jì)算機(jī)的不斷發(fā)展和廣泛應(yīng)用,各生產(chǎn)廠商除了向用戶提供整套系統(tǒng)外,還設(shè)計(jì)和提供各種功能的插件模塊,讓用戶根據(jù)自己的需要構(gòu)成自己的應(yīng)用系統(tǒng)或擴(kuò)充原有的系統(tǒng)。這些模塊間需要互相通信,需要有高速、可靠的信息交換通道,這就是總線。總線使得計(jì)算機(jī)各模塊之間的信號線可以直接互相連接,提高了信號傳輸?shù)乃俣取?/p>本文引用地址:http://m.butianyuan.cn/article/201612/333390.htm
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是一種硬件描述語言,在電子設(shè)計(jì)領(lǐng)域得到廣泛應(yīng)用,最新版本為IEEE標(biāo)準(zhǔn)的1076-1993版,由IEEE在1993年公布。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。本文用VHDL的有限狀態(tài)機(jī)來描述和仿真計(jì)算機(jī)總線控制器的邏輯行為。
1 總線在總線控制器的控制下工作
在計(jì)算機(jī)系統(tǒng)各模塊之間的信息通信過程中,每一時刻只能有一組信息在總線上傳輸。如果有多組信息要傳輸,只能在總線控制器的控制下,按順序分別傳輸,這樣對每一組信息的傳輸就形成一個傳輸周期,這個周期包括申請分配階段、尋址階段、數(shù)據(jù)交換階段和撤消階段。申請分配階段由主模塊提出總線使用申請,經(jīng)總線控制器批準(zhǔn)后獲得總線使用權(quán);之后主模塊把從模塊地址放置到地址總線上,即尋址階段;從模塊接收到地址后做好相應(yīng)的通信準(zhǔn)備工作,并與主模塊建立通信,進(jìn)行數(shù)據(jù)交換;數(shù)據(jù)交換結(jié)束后,主模塊通知總線控制器,并交還總線使用權(quán),即撤消階段。常用的總線通信方式有同步通信方式和異步通信方式兩種。
2 同步通信方式的有限狀態(tài)機(jī)描述和仿真
在同步通信方式里,模塊之間的通信傳輸周期是固定的。有精確穩(wěn)定的系統(tǒng)時鐘作為傳輸周期的“標(biāo)尺”,通信雙方嚴(yán)格按照時鐘標(biāo)尺進(jìn)行各種操作,以主模塊(如CPU)從從模塊(如內(nèi)存)讀取數(shù)據(jù)為例,總線控制器框圖如圖1所示。
這種方式下總線的控制狀態(tài)轉(zhuǎn)移圖如圖2所示。
用VHDL進(jìn)行描述并在MAX+PLUSII上進(jìn)行仿真,結(jié)果如圖3所示:
從圖3可以看出,控制器一開始處于狀態(tài)0(空閑狀態(tài)),此時總線批準(zhǔn)控制信號grant、片選信號csbar、地址有效信號effect和讀控制信號rbar均處于無效的高電平;一旦有主模塊發(fā)出總線請求,即request信號為低電平,控制器轉(zhuǎn)移到狀態(tài)1,總線批準(zhǔn)控制信號有效,申請得到批準(zhǔn),這里假設(shè)主模塊只有一個,即不存在多個主模塊競爭使用總線的情況;進(jìn)入狀態(tài)2后,主模塊發(fā)出地址,這里假設(shè)地址為“AD”,同時置片選信號csbar和地址有效信號effect為有效狀態(tài),從模塊接收到地址有效信號和片選信號后,根據(jù)主模塊發(fā)出的地址進(jìn)行數(shù)據(jù)準(zhǔn)備工作;進(jìn)入狀態(tài)3后,主模塊發(fā)出讀控制信號,即置rbar信號為有效狀態(tài);進(jìn)入狀態(tài)4后,假設(shè)從模塊數(shù)據(jù)準(zhǔn)備就緒,并發(fā)送到數(shù)據(jù)總線上,這里假設(shè)數(shù)據(jù)為“DA”,主模塊讀取數(shù)據(jù);進(jìn)入狀態(tài)5后,主模塊讀數(shù)據(jù)完畢,發(fā)出撤消信號,即置withdraw信號為有效狀態(tài),之后返回狀態(tài)0,所有控制信號都返回到無效狀態(tài);至此,一個數(shù)據(jù)傳輸周期結(jié)束。在傳輸過程中,各個模塊的動作嚴(yán)格按照系統(tǒng)時鐘同步進(jìn)行。
本設(shè)計(jì)下載到GW48—GK2/PK2 EDA實(shí)驗(yàn)開發(fā)系統(tǒng),該系統(tǒng)目標(biāo)芯片為EP1K100QC208-3,按照結(jié)構(gòu)圖No.0進(jìn)行硬件測試,實(shí)驗(yàn)系統(tǒng)提供測試引腳的限制,只測試地址和數(shù)據(jù)均為4位(測試低4位)的情況,結(jié)果如圖4所示。
從圖4中可以看出,在狀態(tài)0,首先設(shè)置withdraw、request和rst為“1”,依次對應(yīng)圖中下方3個發(fā)光二極管,此時4個輸出控制信號rbar、effect、csbar和grant為“1”,這4個信號按次序組成一個4位二進(jìn)制數(shù)據(jù),該數(shù)據(jù)經(jīng)過譯碼器譯碼后由數(shù)碼管顯示輸出結(jié)果,因4個信號均為“1”,故應(yīng)該顯示結(jié)果“F”,如圖中上面的數(shù)碼管顯示“F”(右邊第3個數(shù)碼管)。第2步,按照圖3所示時序設(shè)置rst和request信號并由按鍵3輸入一個時鐘脈沖,進(jìn)入狀態(tài)1,此時grant信號為“0”,4個輸出控制信號組合為“1110”,可以看到圖中數(shù)碼管顯示“E”,表明主模塊申請總線被批準(zhǔn)。第3步,設(shè)置地址信號addr1(低4位)為“1010”,即“A”,如圖中數(shù)碼管下方兩個發(fā)光二極管所示,并輸入一個時鐘脈沖,進(jìn)入狀態(tài)2,該地址信號由addr2經(jīng)譯碼器譯碼后由數(shù)碼管顯示出來,如圖中上面最右邊的數(shù)碼管顯示“A”,在該狀態(tài)中地址有效信號effect和片選信號csbar均為“0”,此狀態(tài)下主模塊發(fā)出地址有效信號和片選信號,4個輸出控制信號組合為“1000”,從圖中可以看到數(shù)碼管顯示數(shù)字“8”。第4步,輸入一個時鐘脈沖進(jìn)入狀態(tài)3,該狀態(tài)下主模塊發(fā)出讀控制信號,即置rbar信號為“0”,4個輸出控制信號全部為“0”,如圖中數(shù)碼管顯示“0”。第5步,設(shè)置數(shù)據(jù)信號get_data(低4位)為“1101”,即“D”,如圖中數(shù)碼管下方兩個發(fā)光二極管所示,并輸入一個時鐘脈沖,進(jìn)入狀態(tài)4,該數(shù)據(jù)信號由data經(jīng)譯碼器譯碼后由數(shù)碼管顯示出來,如圖中上面右邊第2個數(shù)碼管顯示“d”。第6步,輸入一個時鐘脈沖,進(jìn)入狀態(tài)5,主模塊讀取數(shù)據(jù)完畢,并發(fā)出撤消信號,1個數(shù)據(jù)傳輸周期結(jié)束;之后如果再輸入一個時鐘脈沖則回到狀態(tài)0。
評論