新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 多慣組脈沖輸出同步計數(shù)系統(tǒng)設(shè)計

多慣組脈沖輸出同步計數(shù)系統(tǒng)設(shè)計

作者: 時間:2013-03-25 來源:網(wǎng)絡(luò) 收藏

2.2 時鐘分頻模塊設(shè)計
本系統(tǒng)采用50 MHz有源晶振,EP2C8Q208C8N內(nèi)部擁有兩個鎖相環(huán),通過倍頻使頻率達到400MHz,然后連接一個分頻模塊為狀態(tài)機提供周期為4ms的計數(shù)值鎖存信號(clk_lock)和一個狀態(tài)機跳轉(zhuǎn)觸發(fā)信號(clk_state)。
2.3 狀態(tài)機模塊設(shè)計
狀態(tài)機模塊主要包括兩個部分:數(shù)據(jù)處理部分和FIFO控制邏輯部分。
2.3.1 狀態(tài)機的數(shù)據(jù)處理部分
狀態(tài)機在計數(shù)值鎖存信號(clk_lock)上升沿到來時會鎖存計數(shù)器此刻的計數(shù)值,并在狀態(tài)機的下一個狀態(tài)將計數(shù)值存儲到data-new的寄存器型變量中并進行求差運算,接著將被減數(shù)與減數(shù)在下一個狀態(tài)進行更新,最后將求出來的差值交給FIFO控制邏輯進行發(fā)送。每個計數(shù)單元計數(shù)值求差的狀態(tài)機原理圖如圖3所示。

本文引用地址:http://m.butianyuan.cn/article/189660.htm

c.JPG


2.3.2 狀態(tài)機的FIFO控制邏輯部分
FPGA控制邏輯的主要作用足通過其內(nèi)部的狀態(tài)機直接操作CY68013的FIFO來進行讀寫控制。SLOE、SLRD和SLWR作為芯片的讀寫信號與使能控制信號。INPKTEND是FPGA主動命令USB芯片向上位PC發(fā)送數(shù)據(jù)的控制端(當FIFO上的數(shù)據(jù)小于規(guī)定大小而又要強制上傳給PC時使用)。FD為雙向的數(shù)據(jù)傳輸接口。FLAGA、FLAGB、FLAGC、FLAGD四個標志位能夠指示FIFO的空滿程度,為數(shù)據(jù)的連續(xù)存取提供了可靠的保證。FPGA_ADR0和FPGA ADR1用于選擇內(nèi)部4個緩沖端點之一。IFCLK提供時鐘信號(僅用于同步Slave FIFOs模式)。FPGA的引腳控制這些端口,達到對USB端的存儲FIFO進行操作的目的。由于異步Slave FIFOs模式的讀寫狀態(tài)簡單,穩(wěn)定性好。本系統(tǒng)選擇異步方式來讀取FIFO。
實現(xiàn)異步Slave FIFO的寫操作的狀態(tài)機如圖7所示。其狀態(tài)轉(zhuǎn)移進程如下:
IDLE:此狀態(tài)為空閑狀態(tài),什么也不做;當寫事件發(fā)牛時(即CLK_LOCK的上升沿到來時),進狀態(tài)1;
狀態(tài)1:使FIFOADR[1:0]指向IN FIFO(即就是選擇CY68013的四個大數(shù)據(jù)量FIFO中的一個,固件程序已將此FIFO配置為寫模式),進狀態(tài)2;
狀態(tài)2:如果FIFO滿標志為假(即FLAGC引腳為高電平時),則進狀態(tài)3;否則在本狀態(tài)等待;
狀態(tài)3:驅(qū)動數(shù)據(jù)到數(shù)據(jù)線上,使SLWR有效(低電平),一個CLK_STATE后再無效(高電平),以使FIFO寫指針遞增,進狀態(tài)4;
狀態(tài)4:如需傳輸更多的數(shù),返回狀態(tài)2,否則進狀態(tài)IDLE。
狀態(tài)跳轉(zhuǎn)示意圖如圖4所示:
使用QuartusII對FIFO的控制邏輯進行時序仿真如圖5所示。

d.JPG


2.4 FPGA整體模塊設(shè)計
FPGA整體模塊邏輯電路圖如圖6所示。

e.JPG



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉