基于單片機和CPLD的PLC背板總線協(xié)議接口芯片設計
3.2 基于Verilog HDL 語言的硬件程序設計
本設計采用Verilog HDL 語言進行協(xié)議芯片的程序設計,Verilog HDL 語言是一種硬件描述語言,設計數(shù)字芯片時可以按照層次描述,并可以進行時序建模。本設計采用混合設計模式,主要設計的模塊有狀態(tài)機、協(xié)議幀檢測、FIFO 控制器設計等。
1)狀態(tài)機設計。
協(xié)議芯片的頂層模塊是狀態(tài)控制器部分,協(xié)議芯片共有四個狀態(tài), 分別處理基于Verilog HDL 程序語言的狀態(tài)機描述偽代碼如下:
2)協(xié)議幀檢測。
本協(xié)議芯片的幀校驗和采用簡單的加和形式進行,在接收一方,如果數(shù)據(jù)幀中有用數(shù)據(jù)的加和同后續(xù)的校驗和字節(jié)相同,則協(xié)議是正確的,否則丟棄該幀。協(xié)議幀校驗和計算的代碼如下:
3)FIFO 設計。
FIFO 利用了MachXO 系列CPLD 的嵌入式SRAM 塊的資源,Lattice 公司的ispLEVER 7.0 軟件提供了可配置的IP 軟核,該軟核可以采用基于嵌入式SRAM 塊實現(xiàn), 也可以使用查找表實現(xiàn),F(xiàn)IFO 的IP 核框圖如圖4 所示,F(xiàn)IFO 的可配置參數(shù)包括FIFO字節(jié)深度、EmptyFull、Almostempty 和AlmostFull觸發(fā)字節(jié)深度、數(shù)據(jù)寬度、大小端模式等。
圖4 可配置FIFO 控制器IP 軟核框圖
評論