基于Verilog的FPGA與USB 2.0高速接口設計
2.2 FPGA控制程序設計
CY7C68013A提供的端口FIFO的讀寫(xiě)操作,與普通FIFO讀寫(xiě)操作方式一樣。CY7C68013A為每個(gè)端口提供了“空”標志、“滿(mǎn)”標志和“ 可編程級”標志。FPGA檢測這些信號,用于控制讀寫(xiě)的過(guò)程。FPGA在完成這些端口FIFO的操作時(shí),采用Verilog HDL硬件描述語(yǔ)言實(shí)現了FIFO的讀寫(xiě)時(shí)序,并在A(yíng)LTERA公司提供的QuartusⅡ8.O開(kāi)發(fā)工具中綜合編譯并映射到FPGA中運行。
2.2.1 從屬FIFO異步“讀”操作
實(shí)現異步從屬FIFO“讀”的狀態(tài)機如圖3所示。其狀態(tài)轉移進(jìn)程如下:
IDLE:當“寫(xiě)”事件發(fā)生時(shí),轉到狀態(tài)1。
狀態(tài)1:指向OUT FIFO,激活FIFOADR[1:O],轉向狀態(tài)2。
狀態(tài)2:激活SLOE,如果FIFO空標志為“假”(FIFO不空),則轉向狀態(tài)3;否則停留在狀態(tài)2。
狀態(tài)3:激活SLOE,SLRD,傳送總線(xiàn)采樣數據;撤銷(xiāo)激活SLRD(指針加1)和SLOE,轉向狀態(tài)4。
狀態(tài)4:如果有更多的數據要求,則轉向狀態(tài)2;否則轉向IDLE。
實(shí)現以上狀態(tài)機的仿真波形如圖4所示。
2.2.2 從屬FIFO異步“寫(xiě)”操作
實(shí)現異步從屬FIFO“寫(xiě)”的狀態(tài)機如圖5所示。其狀態(tài)轉移進(jìn)程如下:
評論