新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 一種高檔FPGA可重構配置方法

一種高檔FPGA可重構配置方法

作者: 時間:2009-08-25 來源:網絡 收藏

為簡化 CPLD的控制時序,便于對 進行自動配置,將 Flash的存儲空間按順序劃分為 6個塊,分別存儲 6個配置數據。每個塊包含 20個扇區(qū),1.25MBytes存儲空間。

本文引用地址:http://2s4d.com/article/191951.htm

CPLD控制部分軟件設計與實現(xiàn)
3.1 EPM7064A的 Verilog HDL描述
EPM7064A是整個配置電路的核心,它完成 Flash配置數據的加載和配置時序的產生。按照由上至下的進行設計,將其分成三個主要功能模塊,即數據加載過程中與 PC機通訊的 UART模塊、寫 Flash時序產生模塊和配置時序產生模塊,分別由 Verilog HDL硬件描述語言實現(xiàn)。
數據加載過程中,EPM7064A的 UART模塊與 PC機通訊,同時產生 Flash編程控制字,將 PC機送來的數據寫入指定的塊。其主要工作過程是串口模塊接收到一個字節(jié)數據后,其 DATARDY有效,觸發(fā) Flash寫模塊先將三個控制字數據 AA、55、A0寫入 Flash,然后將接收到的數據寫入 Flash。寫 Flash仿真時序圖如圖 4所示。

數據讀取和配置時序模塊的主要程序代碼如下:

module conf( clk20m, //設時鐘頻率20Mhz
…… ) //端口列表
…… //輸入輸出口定義
…… //寄存器定義
…… //配置模式參數定義
…… //工作狀態(tài)參數定義
always@(posedge clk)
begin
if (conf_start==1) //配置啟動脈沖啟動一次配置
nCONFIG=0;
if(nCONFIG==0)
count1=count1+1;
if (count1=50) //進入復位狀態(tài),復位時間大于2us
state=reset;
if(count1>50)
nCONFIG=1;
if(nSTATUS==1)
state=configure; //進入配置狀態(tài)
if(CONF_DONE)
begin state=init; count2=count2+1;end //進入初始化狀態(tài)
if(INIT_DONE)
begin state=user_mode;count2=0;end //進入用戶狀態(tài)
end
always@(posedge clk)
begin
case(state)
reset: begin



評論


相關推薦

技術專區(qū)

關閉