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