新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的嵌入式PLC微處理器設(shè)計(jì)

        基于FPGA的嵌入式PLC微處理器設(shè)計(jì)

        作者: 時(shí)間:2011-10-08 來(lái)源:網(wǎng)絡(luò) 收藏
        (2)控制存儲(chǔ)器。控制存儲(chǔ)器中存放的是各指令所對(duì)應(yīng)的微程序,它可以用中的LPM—ROM模塊來(lái)實(shí)現(xiàn),如圖2所示。Clock為同步時(shí)鐘信號(hào),address為5位的地址值,q為32位的微指令,當(dāng)clock上升沿到來(lái)時(shí),rom就把a(bǔ)ddress所對(duì)應(yīng)的地址中的值輸出給q。

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

          


          (3)微地址產(chǎn)生邏輯。微地址產(chǎn)生邏輯主要是根據(jù)微指令中的測(cè)試位及其他相關(guān)的條件來(lái)控制微地址的產(chǎn)生,它是根據(jù)一定的邏輯功能用VHDL語(yǔ)言編寫的,并且經(jīng)過編譯和綜合后生成的模塊,如圖3所示。

          其中,clk為同步時(shí)鐘信號(hào),rst為復(fù)位信號(hào),q為輸出的5位微地址值。其控制流程如下:

          (1)系統(tǒng)啟動(dòng)時(shí),給出一個(gè)rst=1的復(fù)位信號(hào),q端便輸出“00010”,為輸入掃描微程序的入口地址;(2)對(duì)應(yīng)的微指令就從控存中輸出,然后該微指令中的5位下地址字段直接輸入到din端,3位測(cè)試位輸入到m端;(3)如果m=“000”,則q端輸出的地址值直接加1,且返回(2)繼續(xù)執(zhí)行;否則,執(zhí)行下一步;(4)如果m=“001”,則看i端輸入的用戶程序指令來(lái)判斷是否需要取數(shù)操作,如果需要,則q端輸出各個(gè)取數(shù)微程序的入口地址;如果不需要,則q端根據(jù)i的操作碼輸出相應(yīng)指令的微程序入口地址,且返回(2)繼續(xù)執(zhí)行;否則,執(zhí)行下一步;(5)如果m=“010”,q端直接輸出din的地址值,且返回(2)繼續(xù)執(zhí)行;否則,執(zhí)行下一步;(6)如果m=“011”,則q端根據(jù)i的操作碼輸出相應(yīng)指令的微程序人口地址,且返回(2)繼續(xù)執(zhí)行。

          2.2 運(yùn)算器

          運(yùn)算器是用來(lái)對(duì)輸入的數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算的部件 ,該ALU具有三輸入和兩輸出,d1和d2是參與邏輯運(yùn)算的兩個(gè)位數(shù)據(jù),其中dl來(lái)自外部的取數(shù),d2來(lái)自輸出暫存器s,sel是指令的操作碼。result是運(yùn)算后的結(jié)果,輸出后送給了暫存器S,q用來(lái)啟動(dòng)定時(shí)器,如圖4所示。

          


          2 3 RAM 圖4 運(yùn)算器原理圖

          RAM用來(lái)存儲(chǔ)用戶程序,它可以用中的LPM—RAM—DQ模塊來(lái)實(shí)現(xiàn)。其中,wren是讀寫控制端,當(dāng)wren=0時(shí)為讀允許,這時(shí)在同步時(shí)鐘clock的上升到來(lái)時(shí)沿將address所對(duì)應(yīng)的地址中的內(nèi)容給輸出端q;當(dāng)wren=1時(shí)為寫允許,這時(shí)在同步時(shí)鐘clock的上升沿到來(lái)時(shí)將data端的數(shù)據(jù)寫入到address所指明的地址中,如圖5所示。

          

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 教育| 白银市| 罗江县| 兴海县| 尉犁县| 博爱县| 酒泉市| 镶黄旗| 临武县| 瓮安县| 保定市| 慈溪市| 寿阳县| 娄烦县| 广宗县| 舟曲县| 宜章县| 亳州市| 广德县| 房山区| 芦山县| 贺兰县| 大冶市| 大兴区| 广饶县| 同仁县| 南京市| 自贡市| 唐海县| 龙门县| 青海省| 阿尔山市| 天津市| 内黄县| 平昌县| 申扎县| 安西县| 伊通| 大荔县| 潞西市| 永寿县|