在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 嵌入式DS80C320單片機(jī)軟核設(shè)計(jì)

            嵌入式DS80C320單片機(jī)軟核設(shè)計(jì)

            作者: 時(shí)間:2009-04-01 來源:網(wǎng)絡(luò) 收藏

            3.1時(shí)序設(shè)計(jì)
            80單片機(jī)的資料里面只有外部接口的時(shí)序介紹,對(duì)于內(nèi)部的信號(hào)執(zhí)行則沒有說明,因此需要重新規(guī)劃,本軟核對(duì)80的時(shí)序進(jìn)行了詳細(xì)的分析,按照黑盒子的思想,加入了流水線的技巧,對(duì)其時(shí)序的設(shè)計(jì)如下:
            對(duì)于普通指令的執(zhí)行過程,內(nèi)部時(shí)序劃分如下:

            本文引用地址:http://www.biyoush.com/article/192101.htm

            這是一條單字節(jié)單周期指令的執(zhí)行過程,在C1的上升沿開始譯碼以及查找本指令的長度周期表,同時(shí),數(shù)據(jù)總線上面是正在回寫的上一條指令的結(jié)果;到了C2的上升沿,數(shù)據(jù)總線和地址總線的控制權(quán)就回到了本條指令的手里,這個(gè)時(shí)候地址總線用來發(fā)送需要讀取的數(shù)據(jù)的地址,數(shù)據(jù)總線則做好從發(fā)送數(shù)據(jù)到接收數(shù)據(jù)的準(zhǔn)備,這個(gè)動(dòng)作由CPU控制模塊完成;然后在C3的上升沿,被選中模塊根據(jù)地址總線和控制總線讀出相關(guān)數(shù)據(jù)并送入數(shù)據(jù)總線,在這以后的一個(gè)時(shí)鐘長度的時(shí)間里面,ALU接到了數(shù)據(jù),然后在C4的上升沿,開始執(zhí)行數(shù)據(jù)處理,同時(shí),CPU控制模塊再次改變地址總線和控制總線的內(nèi)容,并發(fā)布寫信號(hào),提示開始被選中讀數(shù)的模塊放棄對(duì)數(shù)據(jù)總線的控制權(quán),以及被選中的存儲(chǔ)結(jié)果的模塊分析寫入類型,作好接收數(shù)據(jù)的準(zhǔn)備,ALU在計(jì)算完成之后就將結(jié)果放到數(shù)據(jù)總線,等待下一個(gè)周期的C1開始將結(jié)果寫入相關(guān)位置;
            總之,本設(shè)計(jì)充分利用了數(shù)據(jù)總線的資源和流水設(shè)計(jì)的技巧,將本來需要6個(gè)時(shí)序的操作簡(jiǎn)化為4個(gè)就完成了,時(shí)序緊湊,速度快;同時(shí)采用了分布式處理的思想,大大簡(jiǎn)化了CPU控制模塊的功能,只發(fā)布控制信號(hào),具體哪個(gè)模塊需要執(zhí)行什么功能由該模塊自行根據(jù)控制信號(hào)來判斷,有利于避免由于局部功能太過集中而造成的芯片局部過熱的問題;
            3.2指令長度周期表的設(shè)計(jì)
            指令長度表主要是用來控制取指令,以及辨別指令代碼和指令參數(shù);而指令周期表則主要是用來控制指令執(zhí)行的時(shí)間,這兩個(gè)表可以簡(jiǎn)化對(duì)指令執(zhí)行的控制。一般這個(gè)過程由ROM模塊根據(jù)已經(jīng)讀取的指令來查表,然后根據(jù)查表的結(jié)果和時(shí)序情況來處理分析,產(chǎn)生一系列控制信號(hào),并發(fā)送給CPU控制模塊,這樣做的好處主要是避免CPU控制模塊與指令以及數(shù)據(jù)打交道,減少其輸入輸出端口數(shù)目;
            指令長度周期表的設(shè)計(jì)是和讀取方式息息相關(guān)的,本設(shè)計(jì)使用自己?jiǎn)为?dú)構(gòu)建的表,并且一分為二,處理方式是為:index={lsb_3, ir[7:4]},其中l(wèi)sb_3的含義為:對(duì)于指令的低三位(ir(2 downto 0)) 規(guī)則為:8-F=>7,6-7=>6,0-5不變化。兩個(gè)表使用相同的讀取方式,這樣既可以簡(jiǎn)化結(jié)構(gòu),將查找空間降低為7位,又可以提高查找速度;
            3.3 PC異動(dòng)編碼的作用
            在單片機(jī)內(nèi)部,PC是需要不停變化的,不僅所有的跳轉(zhuǎn)類指令都需要改變PC的內(nèi)容,而且中斷類指令還需要完成PC的出棧以及入棧操作;因此,有些模型里面對(duì)PC的處理異常復(fù)雜,基本上是對(duì)每條指令詳細(xì)規(guī)定PC的變化;本設(shè)計(jì)在這方面的處理采用了編碼的技巧來提高速度;
            首先分析編碼的可能性,雖然很多指令可以改變PC的內(nèi)容,但是對(duì)于PC來說,除了正常的加1操作,其它的變化方式只有如下幾種:

            其中pmem1和pmem2為指令參數(shù),來自于ROM模塊;PC_OUT為堆棧中的PC內(nèi)容。
            剩下的難題就是由誰來發(fā)出這個(gè)編碼,對(duì)于所有的跳轉(zhuǎn)類指令以及中斷類指令,每條指令的跳轉(zhuǎn)條件是不相同的,需要一一判斷,本設(shè)計(jì)就巧妙的利用了ALU模塊來處理這個(gè)編碼,ALU模塊計(jì)算的時(shí)候也是需要對(duì)操作進(jìn)行判斷的,因此,只要添加一小段代碼就可以讓其完成發(fā)送編碼的功能;
            PC編碼的方式大大簡(jiǎn)化了PC模塊的操作,使得程序更加規(guī)整;



            關(guān)鍵詞: C320 320 80C DS

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉