<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > CY7C68013與FPGA接口的Verilog HDL實(shí)現

CY7C68013與FPGA接口的Verilog HDL實(shí)現

作者: 時(shí)間:2012-02-09 來(lái)源:網(wǎng)絡(luò ) 收藏

0 引 言

本文引用地址:http://dyxdggzs.com/article/190783.htm

USB(通用串行總線(xiàn))是英特爾、微軟、IBM、康柏等公司1994年聯(lián)合制定的一種通用串行總線(xiàn)規范,它解決了與網(wǎng)絡(luò )通信問(wèn)題,而且端口擴展性能好、容易使用。最新的USB2.0支持3種速率:低速1.5 Mbit/s,全速12 Mbit/s,高速480 Mbit/s。這3種速率可以滿(mǎn)足目前大部分外設接口的需要。

本文介紹了目前使用較多的USB2.0控制器CY7芯片與(現場(chǎng)可編程門(mén)陣列)芯片接口的 HDL(硬件描述語(yǔ)言)實(shí)現。本系統可擴展,完全可用于其他高速數據采集系統中。

1 系統構成

本系統主要是由和USB2.0控制器CY7C2組成,系統框圖及其信號連接關(guān)系如圖1所示??梢愿鶕?shí)際系統的需要,用實(shí)現預定功能,如數據采集卡、控制硬盤(pán)讀寫(xiě)等。

1.1 控制器CY7

Cypress公司的EZ-USB FX 2是第一個(gè)包含USB2.0的集成微控制器,它內部集成了1個(gè)增強型的8051、1個(gè)智能USB串行接口引擎、1個(gè)USB數據收發(fā)器、3個(gè)8位I/O口、16位地址線(xiàn)、8.5 kB RAM和4 kBFIFO等。增強性8051內核完全與標準8051兼容,而性能可達到標準8051的3倍以上。其框圖如圖2所示。

1.1.1 CY7結構特點(diǎn)

EZ-USB FX2提供了一種獨持架構,使USB接口和應用環(huán)境直接共享FIFO,而微控制器可不參與數據傳輸,但允許以FIFO或RAM的方式訪(fǎng)問(wèn)這些共享FIFO,這種被稱(chēng)之為量子FIFO的處理架構,較好地解決了USB高速模式的帶寬問(wèn)題。

FX2芯片在數據傳輸時(shí)主要利用了4 kB的FIFO,分為7個(gè)端點(diǎn):EPOINOUT、EP1IN、EP1OUT、EP2、EP4、EP6和EP8。其中EPO、EPlIN和EP1OUT是3個(gè)64 B的緩存,只能被固件訪(fǎng)問(wèn),EP0是一個(gè)默認的數據輸入輸出端口緩存;EP1IN和EP1OUT是單獨的64 B緩存,呵以配置這些端點(diǎn)為塊傳輸、中斷傳輸或同步傳輸;端點(diǎn)2、4、6、8是大容量高帶寬的數據傳輸端點(diǎn),可以配置為各種帶寬以滿(mǎn)足實(shí)際需要,端點(diǎn)2、4是輸出端點(diǎn),端點(diǎn)6、8是輸入端點(diǎn)。值得注意的是,端點(diǎn)4、8能配置為每幀512 B,而端點(diǎn)2、6卻能配置為每幀512 B或1 024 B,并可配置為2、3、4級,這樣EP2或EP6最大能配置為4 kB的緩存。

其在內部的傳輸控制是通過(guò)full(滿(mǎn))和empty(空)兩個(gè)控制信號來(lái)完成的,當full為真時(shí)不能再寫(xiě)數據,當empty為真時(shí)不能再對FIFO進(jìn)行讀,其內部數據傳輸示意圖如圖3所示。

如圖3所示,USB執行OUT傳輸,將EP2端點(diǎn)設成512 B四重FIFO。在USB端和外部接門(mén)端都并不知道有四重FIFO。USB端只要有1個(gè)FIFO為半滿(mǎn),就可以繼續發(fā)送數據。當操作的FIFO寫(xiě)滿(mǎn)時(shí),FX2自動(dòng)將其轉換到外部接口端,排隊等候讀??;并將USB接口隊列中下一個(gè)為空的FIFO轉移到USB接口上,供其繼續寫(xiě)數據。外部接門(mén)端與此類(lèi)似,只要有1個(gè)FIFO為半滿(mǎn),就可以繼續讀取數據。當前操作的FIFO讀空時(shí),FX2自動(dòng)將其轉換到USB接口端,排隊等候寫(xiě)入;并將外部接口隊列中下一個(gè)為滿(mǎn)的FIFO轉移到外部接口上,供其繼續讀取。

1.1.2 Fx2接口方式

FX2有Slave FIFO和GPIF兩種接口方式。

Slave FIFO是從機方式,即FX的CPU不直接參與USB數據處理,而是簡(jiǎn)單地把FX作為USB和外部數據處理邏輯(如ASIC、DSP和IDE(串行接口引擎)控制器)之間的通道,數據流并不經(jīng)過(guò)CPU,而是通過(guò)FX的FIFO直接傳輸。FIFO通過(guò)外部主機控制,同時(shí),FIFO提供所需的時(shí)序信號、握手信號(滿(mǎn)、空等)和輸出使能等。

可編程接口GPIF是主機方式,GPIF作為內部主機控制端點(diǎn)FIFO,其core是一個(gè)可編程狀態(tài)機,可以生成多達6個(gè)控制輸出信號和9個(gè)地址輸出信號,能外接6個(gè)外部Ready輸入信號和2個(gè)內部Ready輸入信號。通過(guò)用戶(hù)自定義的波形描述符來(lái)控制狀態(tài)機,使用軟件編程讀寫(xiě)控制波形,幾乎可以對任何8/16 hit接口的控制器、存儲器和總線(xiàn)進(jìn)行數據的主動(dòng)讀寫(xiě),非常靈活。

2 接口的 HDL編程實(shí)現

在本設計巾采用Slave FIFO從機方式實(shí)現FPGA對FX的控制,通過(guò) HDL編程實(shí)現。FPGA可以根據實(shí)際情況選定。我們在設計時(shí)選用Xilinx公司的Virtex-Ⅱ設備(XC2V10004FG456C)。

2.1 異步FIFO讀數據

FX讀數據也就是數據從FX傳到FPGA的過(guò)程,其過(guò)程如下:

a)反復檢測控制線(xiàn)狀態(tài),當讀事件發(fā)生時(shí),即控制線(xiàn)con_out_z=0和RD_disk=10時(shí),轉到 b;

b)分配FIFOADR[1:0]=00,這時(shí)FIFO指針會(huì )指向輸出端點(diǎn),表明使用端點(diǎn)EP2;

c)檢查FIFO是否空,當empy=1時(shí)表示FIFO不空,轉到狀態(tài)d,否則保持在狀態(tài)C;

d)賦值SLOE=0,使雙向數據線(xiàn)FD在輸出狀態(tài),采樣FD數據線(xiàn)上的數據,并在SLRD的上升沿使FIFO指針門(mén)動(dòng)加1,跳轉到e;

e)假如有更多的數據需要讀,轉到狀態(tài)b,否則轉到狀態(tài)a。

對讀數據編程如下:



用Mentor軟件Modelsim進(jìn)行仿真驗證,其仿真波形如圖4所示。在此過(guò)程中,SLRD信號特別重要,在SLRD的下降沿把FlFO中的數據放到FD數據線(xiàn)上;在SLRD的上升沿把FIFO指針加1,并指向下一個(gè)單元。

2.2 異步FIFO寫(xiě)數據

向FIFO寫(xiě)數據是讀數據的逆過(guò)程,也就是把FP-GA數據寫(xiě)入FX的FIFO,其編程過(guò)程如下:

a)查詢(xún)控制信號線(xiàn)con_out_z和WR_disk,看是否有讀事件發(fā)生,如果有,就轉移到狀態(tài)b,否則保持在狀態(tài)a;

b)分配FIFOAFR[1:0]=10,FIFO指針指向輸入端點(diǎn),轉向狀態(tài)c;

c)檢查FIFO的滿(mǎn)標志是否為1,假如fuIl=1,表示FIFO不滿(mǎn),轉到狀態(tài)d,否則保持在狀態(tài)c;

d)把外部數據indata放在FD上,同時(shí)把SLWR拉高,以使得FIFO指針自動(dòng)加1,然后轉到狀態(tài)e;

e)假如有更多的數據要傳輸,轉到狀態(tài)b,否則轉到狀態(tài)a。

其程序與寫(xiě)FIFO數據時(shí)一樣,只是在生成SLWR信號時(shí),需要注意控制信號之間的保持延時(shí)時(shí)間約束,這可以通過(guò)仿真結果進(jìn)行適當修改。



讀數據信號仿真波形如圖5所示。但必須注意的是,在SLWR的下降沿把indata數據線(xiàn)上的數據放到FD數據線(xiàn)上;在SLWR的上降沿把FD數據線(xiàn)上的數據放人FIFO,并同時(shí)使FIFO指針加1,指向下一個(gè)緩存單元。

3 結束語(yǔ)

現在USB2.O控制器CY7C68013已經(jīng)應用到許多數據傳輸領(lǐng)域,由于此芯片靈活的接口和可編程特性簡(jiǎn)化了外部硬件的設計,提高了系統可靠性,也利于PCB(印制電路板)的制作與調試。本設計可擴展性好,因此可用于需要處理大容量的數據采集系統中。本設計已經(jīng)用于對IDE硬盤(pán)的讀寫(xiě)控制中,實(shí)現了對IDE硬盤(pán)的快速讀寫(xiě)。



關(guān)鍵詞: Verilog C68013 68013 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>