新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/191951.htm

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

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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 申扎县| 平乡县| 广平县| 射阳县| 阿拉善盟| 鄂伦春自治旗| 辽阳市| 北川| 滨海县| 沙田区| 周宁县| 兴山县| 将乐县| 杭锦旗| 封丘县| 湟源县| 沁水县| 盐亭县| 新巴尔虎左旗| 沂源县| 柳州市| 永德县| 普兰县| 思茅市| 长武县| 富顺县| 松潘县| 灵寿县| 朔州市| 广河县| 长沙县| 界首市| 金秀| 鹤庆县| 青浦区| 库车县| 远安县| 华安县| 广宁县| 时尚| 鲁山县|