国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的接口芯片邏輯設(shè)計及仿真

2011-02-03 06:29:14王文濤張皓月朱順安
關(guān)鍵詞:數(shù)據(jù)總線緩沖器微機

王文濤,張皓月,朱順安,周 佳

(中南民族大學(xué)計算機科學(xué)學(xué)院,武漢430074)

隨著微型計算機應(yīng)用的日益廣泛和深入,接口技術(shù)有了迅速的發(fā)展,并已成為直接影響微機系統(tǒng)功能和推廣應(yīng)用的關(guān)鍵.從硬件的角度來看,微機的開發(fā)與應(yīng)用,在很大程度上就是微機接口電路的開發(fā)與應(yīng)用.FPGA是一種新興的可編程邏輯器件,可以取代現(xiàn)有的全部微機接口芯片,實現(xiàn)微機系統(tǒng)中的存儲器、地址譯碼等多種功能,具有更高的密度、更快的工作速度、更好的穩(wěn)定性和更大的編程靈活性,能熟練運用FPGA設(shè)計接口芯片,無疑需要對接口芯片有更深層次的理解.

1 8255A內(nèi)部結(jié)構(gòu)

8255A具有24個可編程設(shè)置的I/O口,即3組8位的I/O為 PA,PB和 PC[1].它們又可分為2組12位的I/O,A組包括A口及C口(高4位,PC4~PC7),B組包括B口及C口(低4位,PC0~PC3).A組可設(shè)置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I/O 3種模式;B組只能設(shè)置為基本I/O或閃控式I/O 2種模式,而這些操作模式完全由控制寄存器的控制字決定.

如圖1,我們將8255A劃分成6個模塊,分別是數(shù)據(jù)總線緩沖器、讀寫控制邏輯、內(nèi)部總線、PA、PB、PC[2].

圖1 8255A內(nèi)部結(jié)構(gòu)圖Fig.1 Internal structure of 8255A

各信號的說明如下.

A1A0:可以形成片內(nèi)4個端口地址,用來尋址8255A內(nèi)部寄存器.

CS:芯片選擇信號線,當CS=1時,表示芯片被選中,允許8255A與 CPU進行通訊;CS=0時,8255A無法與CPU做數(shù)據(jù)傳輸.

WR:寫信號,當WR=1且CS=1時,允許CPU將數(shù)據(jù)或控制字寫入8255A.

RD:讀信號,當RD=1且CS=1時,允許8255A通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255A讀取數(shù)據(jù).

RESET:復(fù)位輸入線,當該輸入端處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式.

2 各模塊功能描述和實現(xiàn)

2.1 數(shù)據(jù)總線緩沖器

數(shù)據(jù)總線緩沖器負責(zé)在CPU與內(nèi)部總線建立數(shù)據(jù)傳輸通道.CTRL[4]、CTRL[3]、CTRL[1]和CTRL[0]分別表示PA和PC高四位、PB和PC低四位的傳輸方向;CTRL[]=0表示輸出,CTRL[]=1表示輸入[3].

2.2 內(nèi)部總線

內(nèi)部結(jié)構(gòu)如圖2所示,內(nèi)部總線在數(shù)據(jù)總線緩沖器和A口或B口或C口之間建立數(shù)據(jù)傳輸通道.

圖2 8255A內(nèi)部總線結(jié)構(gòu)圖Fig.2 Internal bus structure of8255A

bus_con[3∶0]中只能有一位為1,其余均為0;為1的那位就輸出數(shù)據(jù)到bus[7∶0]中.其他均處于從bus[7∶0]讀數(shù)據(jù)狀態(tài).

2.3 讀寫控制邏輯

讀寫控制邏輯根據(jù)輸入信號的控制,輸出對整個8255A的控制信號.根據(jù)輸入信號的功能可以此模塊分成以下幾個部分.

1)A、CS組成的控制信號.

2)WR、RD組成的讀寫信號.

WR=1,RD=0 時,表示讀數(shù)據(jù);WR=0,RD=1時,表示寫數(shù)據(jù).

圖3 A和CS的控制信號Fig.3 Control signal of A and CS

3)對數(shù)據(jù)總線緩沖器的控制信號[4].

當 RESET=1 時,CTRL=8’b0;當{A,CS,D[7],reset,WR}==6’b110100 時,表示對讀寫控制邏輯的寄存器進行操作.即CTRL=D_inbuf;根據(jù)CTRL[]寄存的數(shù)據(jù)來產(chǎn)生對其他口的控制邏輯.

圖4 CTRL的控制邏輯Fig.4 Control logic of CTRL

4)對PA的控制.

如圖5所示,當 RESET=0,CTRL[7]=1時,PA輸入或輸出由 CTRL[4]控制,PA的方式由CTRL[6∶5]控制.

圖5 對PA的控制Fig.5 Control logic for PA

5)對PB的控制.

與PA類似,只是 CTRL[6∶4],PA分別換成CTRL[2∶1],PB;并且 CTRL[4]換成 CTRL[1].

6)對PC的控制.

當 RESET=0,CTRL[7]=1 時,CTRL[3]和CTRL[0]分別控制 PC[7∶4]和 PC[3∶0]的輸入或輸出,即CTRL[]=0表示輸出,CTRL[]=1表示輸入.

2.4 A 口

如表1所示,A組有3種方式(0方式、1方式、2方式),由 CTRL[6∶5]控制,傳輸方向由 CTRL[4]控制.關(guān)于 PA 的部分代碼[3]如下:always@(PAtemp1,PA,reset,A,CTRL)

表1 PA的命令字Tab.1 Command word of PA

2.5 B 口

依2.3所述與A口類似,故不贅述.

2.6 C 口

C口作用與8255A的工作方式有關(guān),除了作數(shù)據(jù)口以外,還有其他用途.

i)作狀態(tài)口.8255A在1、2方式下有固定的狀態(tài)字是從C口讀入.

ii)作按位控制用.C口的8個引腳可以單獨從1個引腳輸出高/低電平.

以下是對內(nèi)部寄存器:PCtemp1[7∶0],PCtemp2[7∶0]的分析.

(1) 對于 PC[3∶0]的處理.當 PC[0]=1 時,PC[3∶0]有效,PC[3∶1]的值是:

(2)C口讀寫控制如表2.

表2 C口讀寫控制Tab.2 Read and write control of PC

(3)C口高/低4位輸入/輸出方式如表3.

表3 C口的輸入/輸出方式Tab.3 Input/output of PC

3 仿真與分析

設(shè)計完成后,進行各項功能測試,以測試性能是否滿足技術(shù)要求.

圖6為測試平臺硬件實物,采用Xilinx公司的Spartan-3E 系列 FPGA[5,6],3.3V 電源供電,在此平臺上完成對8255A代碼的測試.

圖6 測試平臺硬件實物Fig.6 Hardware test platform

我們進行的是8255A方式0的仿真.在0方式下,彼此獨立的兩個8位和兩個4位并行口,共24根I/O全部由用戶支配,都能被指定作為輸入或者輸出用.需要注意的是,C口的高4位或低4位只能作為一組同時輸出或輸入,不能把4位中的一部分作輸出,另一部分作輸入.

經(jīng)PACE分配引腳,然后通過 JTAG方式將8255A的代碼下載到FPGA上,并給出如圖7激勵,得出仿真結(jié)果如圖8.

激勵如圖7,a[1∶0]在 0 ~180ns為 2’h0,即00,此時選中PA,但無控制字;180~380ns為2h’3,此時選中 din[7∶0]作為狀態(tài)控制字,din[7∶0]為8’h80,即10000000,此狀態(tài)控制字表示,A組和 B組為 0方式,PA、PB和 PC為輸出狀態(tài);380~580ns,a[1∶0]為2’h0,din[7∶0]為8’h65,則選中PA,并且將 din[7∶0]的值送給 paout[7∶0].

仿真結(jié)果如圖8,a[1∶0]在 180 ~380ns為 2’h3,選擇 din[7∶0],此時 din[7∶0]為 8’h80,并將其值送入CTRL.在380 ~580ns,a[1∶0]為2’h0,此時PA被選中,且為輸出狀態(tài),可以看到din[7∶0]為8’h65,而在 400 ~800ns,paout[7∶0]為 8’h65,說明此時paout輸出的值為din[7∶0]里的值,由此實現(xiàn)了8255A的0方式.

圖7 測試波形Fig.7 Testbench wave

圖8 仿真結(jié)果Fig.8 Results of simulation

4 結(jié)語

本文在FPGA上實現(xiàn)了8255A芯片的基本功能,亦可根據(jù)需要,修改參數(shù),任意擴展位數(shù).下一步的工作是通過修改、完善和測試將其封裝成IP核,并且以此作為范例將其他所需的芯片也封裝成IP核,方便調(diào)用.

[1]劉樂善.微型計算機接口技術(shù)及應(yīng)用[M].武漢:華中科技大學(xué)出版社,2000:137-165.

[2]呂志鵬.16位微處理器在FPGA上的設(shè)計與原理實現(xiàn)[D].北京:清華大學(xué),2004.

[3]Davide P,Scott T.Practical FPGA programming in C[M].Boston:Prentice Hall PTR,2007:19-51.

[4]劉 嵐,黃秋元,陳 適.FPGA應(yīng)用技術(shù)基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2009:151-177.

[5]王文濤,王 建,朱順安.基于FPGA的女書文字切割技術(shù)的設(shè)計與應(yīng)用[J].中南民族大學(xué)學(xué)報:自然科學(xué)版,2011,30(1):96-100.

[6]孫 航,胡靈博.Xilinx可編程邏輯器件應(yīng)用與系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2008:84-102.

猜你喜歡
數(shù)據(jù)總線緩沖器微機
一汽-大眾速騰轎車行駛中為何偶發(fā)多個故障燈點亮
2012年產(chǎn)上汽大眾斯柯達明銳轎車空調(diào)不制冷的故障排除
更正
輕兵器(2022年3期)2022-03-21 08:37:28
重載貨車用緩沖器選型的研究及分析
鐵道車輛(2021年4期)2021-08-30 02:07:14
Fuzzy Search for Multiple Chinese Keywords in Cloud Environment
智能電網(wǎng)調(diào)度控制系統(tǒng)中的數(shù)據(jù)總線技術(shù)研究
科技資訊(2017年27期)2017-11-24 10:06:06
電力系統(tǒng)微機保護裝置的抗干擾措施
新型微機可控頂控制系統(tǒng)原理及現(xiàn)狀
途安車數(shù)據(jù)總線診斷接口故障
面向TIA和緩沖器應(yīng)用的毫微微安偏置電流運放可實現(xiàn)500MHz增益帶寬
404 Not Found

404 Not Found


nginx
汽车| 九龙县| 商城县| 潼南县| 偃师市| 莱西市| 桐城市| 西盟| 荥阳市| 宣武区| 株洲县| 抚州市| 阿合奇县| 宁津县| 合阳县| 桃园市| 保亭| 盘山县| 信丰县| 齐河县| 巫山县| 开阳县| 南乐县| 民县| 浮山县| 岑巩县| 简阳市| 四会市| 江源县| 松桃| 景东| 许昌县| 桦甸市| 壤塘县| 淮安市| 宣汉县| 敦煌市| 寿阳县| 蛟河市| 手游| 彩票|