久久免费电影-久久免费大片-久久免费播放-久久免费99精品久久久久久-在线视频亚洲一区-在线视频三区

  •  歡迎來到 深圳市毅創騰電子科技有限公司  
網站首頁 > 電子資訊> XILINX Spartan?-3開發板上的新型處理器

XILINX Spartan?-3開發板上的新型處理器

信息來源 : 網絡 | 發布時間 : 2016-04-08 10:21 | 瀏覽次數 : 1316

幾年前,我的朋友Paul Reed建議我重新修訂并再次出版這本書,不僅因為這本書對系統設計教學具有重要價值,同時還因為這本書可以作為良好的切入點,幫助那些想要成為創新者的人們從零基礎構建可靠的系統。

  然而,我當時實際上是遇到了很大的困難。我最初開發的編譯器是將已基本消失了的處理器作為目標。因此,我的解決辦法就是為現代處理器重新編寫編譯器。但在做了不少研究之后,我無法找到一款能夠在清晰度、規律性和簡潔性上符合我標準的處理器。因此,我自己設計了這款編譯器。而我之所以能夠將該想法付諸實現,都是因為現代FPGA能夠幫助我設計硬件以及系統軟件。

  選擇賽靈思 FPGA能幫助我更新系統,同時讓設計盡可能接近自1990年以來的原始版本。更重要的是,選擇賽靈思FPGA 能幫助我更新系統,同時讓設計盡可能接近自1990年以來的原始版本。

  實現在低成本Digilent Spartan?-3開發板上的新型處理器RISC負責托管1MB靜態RAM (SRAM)內存。我唯一添加的系統硬件就是一個鼠標接口和一個用來替換舊系統中硬盤驅動器的SD卡。

  這本書和面向整個系統的源代碼可在projectoberon.com[3,4,5]中查閱,也可在該網站上名為 S3RISCinstall.zip.的單個文件中進行查閱。該文件包含指令、SD卡文件系統圖像和FPGA配置比特文件(對于Spartan-3開發板的 Platform Flash,此為PROM文件形式),以及SD卡/鼠標接口硬件的構造詳圖。

RISC處理器

  該處理器由算術邏輯單元、由16個32位寄存器組成的陣列和帶指令寄存器、IR及程序計數器PC的控制單元組成。Verilog模塊RISC5就是該處理器的典型代表。

  該處理器具有20種指令:4種用于移動、偏移和旋轉;4種用于邏輯運算;4種用于整數運算;4種用于浮點運算;2種用于存儲器訪問;2種用于分支。

  RISC5通過運行環境RISC5Top導入。該運行環境包括到各種(內存映射)器件和SRAM(256M×32 位)的接口。

  整個系統(圖1)包括以下Verilog模塊(見行統計)

RISC5Top

運行環境

194

RISC5

處理器

201

乘法器

整數運算

47

除法器


24

FP加法器

浮點運算

98

FP乘法器


33

FP除法器


35

SPI

SD卡和發送器/接收器

25

VID

1024×768 視頻控制器

73

PS2

鍵盤

25

鼠標

鼠標

95

RS232T

RS232 發送器

23

RS232R

RS232 接收器

25


  圖1 – 該系統及其所含Verilog模塊的方框圖

  我將內存映射到黑白VGA顯示器中,這樣它只占用1024×768×1 位/像素=98304字節,基本上
占 1 MB可用主內存的10%。該SD卡將取代初始系統中80MB的硬盤驅動器,其可通過能夠接受并序列化字節或32位字的標準SPI接口進行存取。鍵盤和鼠標通過標準PS-2串行接口連接。此外,還提供一根串行異步的RS-232線和一個通用8位并行的I/O接口。模塊RISC5Top還帶有一個每毫秒采用增量式計數的計數器。

OBERON操作系統

  該操作系統軟件由包括內存分配器(帶垃圾回收器)的內核、文件系統以及引導載入程序、文本系統、瀏覽器系統和文本編輯器組成。

  名為“Oberon”的模塊是中心任務調度程序,而“System”是基礎命令模塊。通過點擊顯示器上任何瀏覽器文本“M.P”上的中間按鈕即可觸發動作,其中P是模塊M聲明的程序名。如果M不存在,則會自動加載。但是,大多數文本編輯命令是通過簡單的鼠標點擊觸發的。

  其中,左邊一欄按鈕用來設置"脫字"符,標記文本位置,右邊一欄按鈕用來選擇文本字段(text stretch)。

  “Kernel”模塊包括磁盤存儲管理和垃圾回收器。我保證觀察瀏覽器是平鋪的,不重疊。標準布局顯示了多個瀏覽器的兩條垂直軌跡。只需拖動標題欄,就可以放大、縮小或移動它們。圖2顯示了在顯示器上運行的用戶界面以及Spartan-3開發板、鍵盤及鼠標。

  圖2 - 顯示用戶界面的顯示器(Spartan-3開發板在右側)

  加載時系統占用模塊空間112640字節(21%),占堆(heap)的16128字節(3%)。系統包括所以下幾個模塊(見行統計),如圖3所示:

內核

271

(內核)

文件目錄

352


文件

505


模塊(引導載入程序)

226


瀏覽器

216

(外核)

文本

532


Oberon

411


菜單瀏覽器

208


文本幀

874


系統

420


編輯

233






  圖3 - 系統及其模塊

  值得注意的是,該系統在加電或重置時,完成初始化僅需兩秒鐘。這包括文件目錄中垃圾回收掃描。

OBERON編譯器

  系統自帶的編譯器采用簡單的自上而下遞歸下降分析法。用戶使用ORP.Compile @命令即可激活模塊選定的源文本上的編譯器。

  包解析器通過掃描儀輸入各種符號,包括識別符、數字和特殊符號(如BEGIN、END、+等)。該方案已被證明在許多應用中有效且均表現不凡。這點在我著的書《編譯器結構》[6,7]中有詳細說明。

  該包解析器調用代碼生成程序模塊中的程序。這些程序直接將指令添加在代碼陣列上。如果已知所有分支目的地,向前跳轉指令(forward-branch instructions)在模塊編譯結束時則會提供跳轉地址(修正)。

  所有可變地址都與基址寄存器關聯。這就是用于局部變量(運行時設置在程序輸入)的R14(堆棧指示器)或用于全局和輸入變量的R13。

  基址地址按要求通過地址保存在寄存器R12內的系統全局模塊表載入。R15用于RISC架構確定的返回地址(鏈接)。因此,R0-R11可用于表達式評估和傳遞過程參數。

  整個編譯器由4個相對較小的有效模塊組成(見行統計):

ORP包解析器968
ORG代碼生成器1120
ORBbase def435
ORS掃描儀311




  編譯器占用115912字節(22%)的模塊空間和17508字節(4%)的堆空間(編譯之前)。其源代碼長約65KB。編譯器自身的編譯在25 MHz RISC處理器上只需幾秒鐘[8]。

 Lola HDL及Verilog翻譯

  名為Lola的硬件描述語言(HDL)于1990年作為硬件設計基礎教學的一種方式開發。這一時期,文本定義開始替代電路圖,首個FPGA開始應用,盡管尚未達到主流設計。Lola由生成位流文件(被加載到FPGA)的編譯器執行。位流文件格式由Algotronix公司和 Concurrent Logic 公司共同開發。這兩家公司提供的存儲單元結構都比較簡單,看起來好像是自動布局布線的最佳選擇。

  在我的項目之后,緊接著是在FPGA上重新實現Oberon系統,現在突然出現這種想法以喚醒Lola。由于賽靈思 FPGA存儲單元結構相當簡單,所以我們沒有冒險實現布局布線,更何況賽靈思因專利原因而拒絕透露其位流文件格式這一事實。

  很明顯,要建立不生成專有位流文件但翻譯成賽靈思能為其提供綜合工具的語言的Lola編譯器。我們選擇了Verilog。這種解決方法意味著迂回繞路相當浪費:首先,Lola模塊已經經過包解析,然后翻譯,然后再次包解析。通過所有這些措施,我們確信Lola編譯器具有適當的錯誤報告和類型一致性檢查功能。

  為促進Lola-2的開發,我們決心用Lola重新定義所有RISC5處理器模塊。現在,這已經實現了。

LOLA語言

  Lola是一種Oberon風格的短小而精煉的程序語言(見http://www.inf.ethz.ch/personal/wirth/Lola/Lola2.pdf)。為簡單起見,我們在這里只展示一個簡單的Lola文本實例。源文本單元被稱為模塊。其報頭規定了名稱及其輸入和輸出參數,以及各參數的名稱和類型。

  MODULE Counter0 (IN CLK50M, rstIn: BIT;

  IN swi: BYTE; OUT leds: BYTE);

  TYPE IBUFG: = MODULE (IN I: BIT; OUT O: BIT)^; VAR clk, tick0, tick1: BIT;

  clkInBuf: IBUFG; REG (clk) rst: BIT;

  cnt0: [16] BIT; (*半毫秒*)

  cnt1: [10] BIT; (*半秒*)

  cnt2: BYTE;

  BEGIN leds:= swi.7 ->swi : swi.0 -> cnt1[9:2]:cnt2;

  tick0:= (cnt0 = 49999);

  tick1:= tick0 & (cnt1 =499); rst:= ~rstIn;

  cnt0:= ~rst -> 0: tick0 ->0 : cnt0 + 1; cnt1 := ~rst -> 0 : tick1 -> 0 : cnt1 +tick0; cnt2 := ~rst -> 0 : cnt2 + tick1;

  clkInBuf (CLK50M,clk) END Counter0.

  編譯器通常使用值為NIL的指示檢查數組索引和基準值。如果違反規定,這會造成陷阱。這種技術具有高度的安全性,防止錯誤和崩潰。事實上,只能通過采用偽模塊SYSTEM中的操作,即PUT和COPY,才能防礙系統的完整性。

  這些操作必須局限于接入器件接口的驅動模塊。在輸入列表中,通過SYSTEM很容易識別它們。整個系統采用Oberon編程,無需使用匯編碼。

  我選擇Digilent Spartan-3 開發板是由于其成本低、操作簡便,這使其適于教育機構,以獲得整套課堂教學套件。

  一個重大優勢就是該開發板上有靜態RAM,使得接口連接非常簡單直觀(甚至用于字節選擇)。遺憾的是,所有新開發板均采用動態RAM,雖然存儲空間更大,但接口連接復雜得多,因此刷新和初始化(校準)需要電路。這一電路與帶靜態RAM的整個處理器一樣復雜。即使控制器以單片式提供,這有悖于我們的開放檢查原則。

  報頭之后是一段包含本地對象(如變量和寄存器)的聲明。之后一段通過賦值規定變量和寄存器數值。BYTE表示一個8位陣列。
  每一個變量和寄存器通過唯一一種表達式(組合電路)進行定義。多重賦值沒有任何意義。可以想象,每個HDL程序包含在一個大的永遠重復子句中,因為寄存器和變量賦值會在每一個同步時鐘脈沖周期內重復。

LOLA編譯器

  編譯器采用簡單的自上而下遞歸下降分析法。通過LSC.Compile @命令在所選Lola源文本上激活該編譯器。包分析器包解析器通過掃描儀輸入各種符號,包括識別符、數字和特殊符號(如BEGIN、END、+等)。該方案已被證明在許多應用中有效且表現不凡。這在我著的書《編譯器結構》 (第1部分和第2部分)中有詳細說明。

  而不是直接即時生成Verilog文本,作為語法分析的一種意外結果,包分析器中會出現語句,從而生成樹形結構,以適當方式表示輸入文本,以便進一步處理。這種結構具有一個優點,即通過調用不同翻譯程序很容易生成各種不同的輸出。其中一個就是Verilog翻譯程序。命令為 LSV. List outputfile.v。另一個命令可能翻譯至VHDL或簡單地列出樹形結構。但也有可能生成網表,以便通過布局器和布線器進行進一步處理。

  因此,整個編譯器至少包括4個相對較小的高效模塊組成(線數顯示):

LSS

掃描儀

159



LSB

基址

52



LSC

編譯器/包解析器

503



LSV

Verilog 生成器

215








該信息來源于網絡,如有侵權,請及時與我們聯系
永久免费AV网站| 亚洲人成电影一区二区在线| 精品国产一区二区三区2021| 英语老师乖乖挽起裙子怎么写作文| 年轻漂亮的女邻居观看在线视频| 春色精品久久久久午夜aⅴ| 香港三级日本三级A视频| 久久久精品久久久久久96| HENNESSY女RAPPER| 无码人妻精品一区二区三18禁| 精品伊人久久大线蕉色首页| AV无码波多野结衣| 无码AV在线一本无码| 久久精品国产一区二区三区不卡| AV无码人妻一区二区三区牛牛| 特级欧美ZOOXX| 精品一区二区三区免费视频| BRAZZERSHD欧美大屁股| 无码人妻一区二区三区四区AV | 亚洲AV无码成人精品区瑜伽裤 | 麻麻让我挺进她的黑森林| 唱歌的大姐姐也想做| 亚洲AV无码一区二区三区大黄瓜| 蜜芽久久人人超碰爱香蕉| 高清拍拍拍无挡国产精品| 亚洲另类在线视频| 琪琪午夜伦埋影院77| 国产无人区码一码二码三MBA| 一对浑圆的胸乳被揉捏动态图| 日本无人区码一码二码三码四码 | 少妇精品揄拍高潮少妇| 精品国产一区二区三区久久久狼 | 末发育娇小性色XXXXX视频| 高清FREESEXMOVIES性TV出水| 亚洲精品无码日韩国产不卡AV | 玉蒲团之玉女心经| 少妇激情一区二区三区视频| 精品一线二线三线区别大吗| 宝贝你下面喷潮了| 亚洲国产精品久久久久婷蜜芽| 欧美日韩视频一区二区| 国产一区二区怡红院| 97人妻天天爽夜夜爽二区| 无码专区HEYZO色欲AV| 免费A级毛片无码免费视频首页| 国产AV人人夜夜澡人人爽| 一本无码人妻在中文字幕| 少妇把腿扒开让我添69动态图| 久久AV无码AV高潮AV| 尺码最大的国产SUV| 亚洲色欲色欱WWW在线| 日韩人妻精品无码一区二区三区| 精品亚洲成A人无码成A在线观看| 成年免费A级毛片免费看| 亚洲欧美综合精品AⅤ一区二区| 日本理论片和搜子同居的日子| 精品浪潮av一区二区三区| 成年女人WWXX免费国产| 亚洲一区二区三区高清AV| 少妇高潮抽搐无码久久AV| 久久中文字幕无码一区二区 | chinese熟女老女人hd视频| 亚洲AV无码专区成人网址| 人妻少妇一区二区三区| 久久成人国产精品一区二区| 动漫精品中文无码卡通动漫| 永久免费不卡在线观看黄网站 | 八戒八戒在线高清观看视频4| 亚洲国产AⅤ精品一区二区蜜桃| 日本丰满护士爆乳XXⅩ| 久久久久99人妻一区二区三区| 国产V片在线播放免费无码| 中文字日产幕码三区的做法步骤| 性欧美XXⅩXXOO护士HD| 人妻仑乱A级毛片免费看| 久久精品国产99国产精品亚洲 | 成色好的Y31S标准版| 一区二区三区在线 | 欧洲| 无码一区二区三区AV免费 | 4444亚洲人成无码网在线观看| 亚洲AV乱码一区二区三区林ゆな| 人人妻人人妻人人人人妻| 久久久久亚洲AV无码专区蜜芽| 国产精品另类激情久久久免费| HD女人奶水授乳MILK| 亚洲熟妇丰满色XXXXX欧美| 偷窥无罪之诱人犯罪| 欧美一区二区在线视频| 久久久久99精品成人片试看 | 处破女处破全过程| 最新亚洲人成网站在线观看| 亚洲AV永久无码精品一区二区| 日韩亚洲AV人人夜夜澡人人爽| 乱中年女人伦视频国产| 好男人好资源电影在线播放| 丰满人妻一区二区三区Aⅴ在线| 4HUWWW四虎永久免费| 亚洲乱码日产精品M| 污污污污污WWW网站免费| 人妻少妇AV中文字幕乱码| 浪荡女天天不停挨CAO日常视| 国产亚洲精品A在线无码| 大肉大捧一进一出好爽视频| 42岁女子经历20天断崖式衰老| 亚洲欧美日韩精品成人| 无人区一码二码三码四码区别在哪 | 亚洲国产精品无码中文字| 天天做日日做天天添天天欢公交车| 欧美一级 片内射黑人| 巨胸美乳无码人妻在线| 狠狠色噜噜狠狠狠狠蜜桃| 国产高颜值大学生情侣酒店| 变态另类AV手机版天堂| 2021国内精品久久久久免费| 亚洲一区在线曰日韩在线| 亚洲AV婷婷五月产AV中文| 太深太粗太大太猛太爽了视频| 朋友的人妻的滋味BD高清中文| 老女人性饥渴XXXXⅩHD另| 精品久久久久久国产牛牛| 国产女人水真多18毛片18精品 | 欧美〇〇无码黑人大战野结衣| 久久久综合亚洲色一区二区三区 | 国产强伦姧在线观看无码| 丰满日韩放荡少妇无码视频| АⅤ天堂 中文在线| 2021精品亚洲中文字幕| 一区二区三区av在线| 亚洲精品一区二区三浪潮AV| 亚洲A∨无码一区二区| 完整版免费AV片| 少妇被黑人到高潮喷白浆| 日本成AⅤ人片日本伦| 欧美日韩在线亚洲一区蜜芽| 免费人成年激情视频在线观看| 久久久久成人精品无码中文字幕| 狠狠色噜噜狠狠狠狠97| 国产亚洲色婷婷久久99精品| 国产精品成人无码久久久| 伽罗ちゃんが腿法是什么意思| 波多野结衣 美乳人妻| AV在线播放日韩亚洲欧| 50多岁岳不让我戴套| 中国蓝CHINABLUE| 一炕四女被窝交换| 亚洲中文字幕无码一区二区三区| 亚洲国产婷婷六月丁香| 亚洲VA久久久噜噜噜久久狠狠| 羞羞色男人的天堂| 午夜无遮挡男女啪啪免费软件| 我的初苞被强开了| 污污网站18禁在线永久免费观看| 他将头埋进双腿间吮小核故事| 色哟哟免费精品网站入口| 日系女生裸妆素颜| 日日狠狠久久偷偷色| 日韩无码视频三区| 色猫咪AV在线网址| 涩爱AV挺进少妇张开双暴躁 | 欧美另类视频在线观看| 女子初尝黑人巨嗷嗷叫| 女人被弄高潮视频免费| 女人张开腿让男人桶爽免| 女人被男人爽到呻吟的视频| 女同学浮乱系列合集| 欧美精品做受XXX性少妇| 欧美日本国产VA高清CABAL| 欧美少妇XXXXX| 人妻跪趴高撅肥臀| 日本在线 | 中文| 色欲av成人蜜臀av不卡| 少妇婬荡久久久久AV无码| 天堂А√在线中文在线| 无码国产乱人伦偷精品视频| 无码任你躁久久久久久老妇| 小寡妇一夜要了六次| 亚洲AV成人无码精品久久漂雪| 亚洲AV无码久久久久网站蜜桃| 亚洲成在人线视AV| 亚洲色大成网站WWW尤物| 一本大道久久东京热无码AV| 在线观看亚洲AV电影网站| ◇一本大道香蕉中文在线| AAAA级少妇高潮大片在线观看| WWW.亚洲精品色情AⅤ色戒| 草莓丝瓜榴莲绿巨人WWW| 丰满人妻被快递员侵犯的电影| 国产AV无码专区亚洲AV麻豆丫 | 日本最新高清一区二区三 | 宝贝小嫩嫩好紧好爽H在线视频| 波多野结衣的影片| 国产ⅩXXX推油按摩BBBB| 国产精品久久毛片| 国模精品一区二区三区| 精品久久久无码人妻中文字幕豆芽| 久久久国产精品ⅤA麻豆百度| 麻豆乱码国产一区二区三区| 欧美国产SE综合| 日韩欧美亚洲综合久久影院DS| 他的粗大把她捣出白沫|