什么是同步有限狀態(tài)機?
同步:所有的狀態(tài)跳轉(zhuǎn)都是在時鐘的作用下進(jìn)行
有限:狀態(tài)的個數(shù)是有限的
為什么要用狀態(tài)機?
FPGA是并行處理的,如果我們想要處理具有前后順序的事件時,就需要引入狀態(tài)機。狀態(tài)機的每一個狀態(tài)代表一個事件,從執(zhí)行當(dāng)前事件到執(zhí)行另一事件我們稱之為狀態(tài)的跳轉(zhuǎn)或狀態(tài)的轉(zhuǎn)移。
狀態(tài)機特別適合描述那些發(fā)生有先后順序或時序規(guī)律的事情。小到計數(shù)器大到微處理器都適合用狀態(tài)機描述。
怎么表示狀態(tài)機?
狀態(tài)機需要具備什么?
- 輸入:根據(jù)輸入確定是否需要進(jìn)行狀態(tài)跳轉(zhuǎn)
- 輸出:當(dāng)前時刻狀態(tài)要做的事情是什么
- 狀態(tài):要處理的事情
狀態(tài)機的設(shè)計步驟是怎么樣的?
- 首先分析輸入、輸出有哪些,需要多少個狀態(tài)
- 其次根據(jù)分析繪制狀態(tài)轉(zhuǎn)移圖
- 設(shè)計實現(xiàn)的模塊
- 狀態(tài)機代碼的編寫
FIFO的使用
什么是FIFO?
FIFO(First In First Out)即先入先出,是一種數(shù)據(jù)緩沖器,用來實現(xiàn)數(shù)據(jù)先入先出的讀/寫方式。FIFO有一個寫端口和一個讀端口外部無需使用者控制地址,使用方便。
根據(jù)FIFO工作的時鐘域可以將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時鐘和寫時鐘為同一個時鐘。異步FIFO是指讀/寫時鐘不一致,是相互獨立的。
FIFO的作用是什么?
- 用于緩存數(shù)據(jù)
- 用于做多bit數(shù)據(jù)的跨時鐘域處理
- 用于做時鐘、位寬不匹配問題的接口
如何使用FIFO?
- 在一定時間內(nèi),寫數(shù)據(jù)的總帶寬一定要小于等于讀數(shù)據(jù)的總帶寬
- 控制好FIFO的關(guān)鍵信號,讀寫時鐘、讀寫使能、空滿標(biāo)志信號
- FIFO一定不能寫滿、也不能讀空,要考慮FIFO的背靠背問題,設(shè)置好存儲深度
FPGA設(shè)計中的技巧
一、使能信號(en)、標(biāo)志信號(flag)、計數(shù)器(cnt)
二、模塊框圖設(shè)計——方案的確定
三、波形設(shè)計——代碼的實現(xiàn)
四、代碼規(guī)范——可復(fù)用性和效率
五、仿真調(diào)試——修改查錯
-
FPGA設(shè)計
+關(guān)注
關(guān)注
9文章
428瀏覽量
26567 -
有限狀態(tài)機
+關(guān)注
關(guān)注
0文章
52瀏覽量
10357 -
狀態(tài)機
+關(guān)注
關(guān)注
2文章
492瀏覽量
27609 -
FIFO存儲
+關(guān)注
關(guān)注
0文章
103瀏覽量
6024 -
數(shù)據(jù)緩沖器
+關(guān)注
關(guān)注
1文章
6瀏覽量
1860
發(fā)布評論請先 登錄
相關(guān)推薦
評論