在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

自制CPU(四)程序編寫

學FPGA,慢慢來 ? 2018-07-16 09:20 ? 次閱讀

在我們設計出來前邊三種CPU之后,我們來進行程序的編寫。

所謂程序的編寫,就是;利用我們寫好的CPU,根據我們可執行的指令集,來編寫一段程序,可一直用我們的CPU來完成。

首先,我們在寫程序之前,確定你的CPU可以執行load,store,beq,jump,add幾種基礎指令,如果這幾個都沒有,那這個程序怕是也做不出來的。

在你希望實現的小系統中,一定有你的外圍電路,它是將你外部輸入的數據寫入外存/數據存儲器 中的,并將運算結果讀出并顯示或... 之后你的指令在開始時寄存器堆中可以預先有操作數,也可以通過指令讀入。程序在開始前進行load將數據從數據存儲器中讀入寄存器堆中,最后再從寄存器堆中用store寫會到數據寄存器中。在運算中有判斷時就使用beq來完成,直接跳轉一般都在beq跳轉到的位置進行有效操作完的下一條指令,為了實現如C語言中的if語句。

最終你的指令是寫成一個case語句中或者寫成一個.coe文件的,coe文件直接寫入數據存儲器中,

例如

32'd0 : instruction <= 32'b000001_00001_00100_0000000000000000;?? ??? ??? ?//1 1 4 000 lw
32'd1 : instruction <= 32'b000000_00000_00001_00010_00000_000000;?? ??? ?//0 0 1 2 0 0 add
32'd2 : instruction <= 32'b000001_00010_00101_0000000000000000;?? ??? ??? ?//1 2 5 000 lw
32'd3 : instruction <= 32'b000000_00000_00010_00011_00000_000000;?? ??? ?//0 0 2 3 0 0 add
32'd4 : instruction <= 32'b000001_00011_00110_0000000000000000;?? ??? ??? ?//1 3 6 000 lw
32'd5 : instruction <= 32'b000000_00011_00010_01101_00000_000001;?? ??? ?//0 3 2 13 0 13 sub

32'd6 : instruction <= 32'b000101_00110_01101_0000000000000001;?? ??? ??? ?//5 6 13 6 beq
32'd7 : instruction <= 32'b000111_00000000000000000000000000;?? ??? ??? ??? ?//7 0 j ?
32'd8 : instruction <= 32'b000101_00110_01101_0000000000000110;?? ??? ??? ?//5 6 13 6 beq
32'd9 : instruction <= 32'b000000_00000_00111_01000_00000_000000;?? ??? ?//0 0 7 8 0 0 add
32'd10 : instruction <= 32'b000000_00000_01000_01001_00000_000000;?? ??? ?//0 0 8 9 0 0 add
32'd11 : instruction <= 32'b000000_00000_01001_01010_00000_000000;?? ??? ?//0 0 9 10 0 0 add
32'd12 : instruction <= 32'b000000_00000_01010_01011_00000_000000;?? ??? ?//0 0 10 11 0 0 add

32'd13 : instruction <= 32'b000101_00110_01101_0000000000000110;?? ??? ??? ?//5 6 13 6 beq
32'd14 : instruction <= 32'b000101_00110_00010_0000000000000111;?? ??? ??? ?//5 6 2 7 beq
32'd15 : instruction <= 32'b000101_00110_00011_0000000000001000;?? ??? ??? ?//5 6 3 8 beq
32'd16 : instruction <= 32'b000101_00110_00111_0000000000001001;?? ??? ??? ?//5 6 7 9 beq
32'd17 : instruction <= 32'b000101_00110_01000_0000000000001010;?? ??? ??? ?//5 6 8 10 beq
32'd18 : instruction <= 32'b000101_00110_01001_0000000000001010;?? ??? ??? ?//5 6 9 10 beq
32'd19 : instruction <= 32'b000101_00110_01010_0000000000001010;?? ??? ??? ?//5 6 10 10 beq

32'd20 : instruction <= 32'b000000_00100_00101_01100_00000_000000;?? ??? ?//0 4 5 12 0 0 add
32'd21 : instruction <= 32'b000111_00000000000000000000011110;????????? //7 30 j
32'd22 : instruction <= 32'b000000_00100_00101_01100_00000_000001;?? ??? ?//0 4 5 12 0 1 sub
32'd23 : instruction <= 32'b000111_00000000000000000000011110;??? x????? //7 30 j
32'd24 : instruction <= 32'b000000_00100_00101_01100_00000_000010;?? ??? ?//0 4 5 12 0 2 and
32'd25 : instruction <= 32'b000111_00000000000000000000011110;????????? //7 30 j
32'd26 : instruction <= 32'b000000_00100_00101_01100_00000_000011;?? ??? ?//0 4 5 12 0 3 or
32'd27 : instruction <= 32'b000111_00000000000000000000011110;????????? //7 30 j
32'd28 : instruction <= 32'b000000_00100_00101_01100_00000_000100;?? ??? ?//0 4 5 12 0 4 nor
32'd29 : instruction <= 32'b000111_00000000000000000000011110;????????? //7 30 j

32'd30 : instruction <= 32'b000010_00000_01100_0000000000000000;?? ??? ??? ?//2 0 13 000 sw

32'd31 : instruction <= 32'b000111_00000000000000000000000000;?? ??? ??? ??? ?//7 0 j? */

或者.coe文件

memory_initialization_radix = 2 ;
memory_initialization_vector =
10001000001000100000000000000010,
00010100001000100000000000000010,
00001000000000000000000000000000,
10001000001000110000000000000000,
00010100011000100000000000000010,
10101100001001000000000100000010,
00001000000000000000000000000000,
10101100001001010000000100000010,

00001000000000000000000000000000,

最終燒錄驗證就實現了用CPU跑一個小程序了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    606012
收藏 人收藏

    評論

    相關推薦

    cpu自制入門 原碼

    CPU自制入門 配套原碼
    發表于 11-03 09:39

    編寫無錯C程序秘訣

    本教程是關于C程序編寫技巧,有利于提高對C程序的掌握程度。
    發表于 11-09 18:33 ?0次下載

    程序編寫范例

    程序編寫范例,各位看官歡迎評論。。。。有什么好的建議MMMM
    發表于 12-10 16:43 ?19次下載

    自制STM32開發板程序

    自制STM32開發板程序,有需要的朋可以下來看看。
    發表于 05-20 16:50 ?35次下載

    VFP9.0編寫程序

    數據庫編寫程序,VFP9.0編寫程序,中文版利用數據庫知識編寫可以運行程序
    發表于 06-21 16:42 ?1次下載

    VB上位機程序編寫

    VB上位機程序編寫
    發表于 02-07 16:15 ?62次下載

    單片機程序如何編寫

    設計編寫單片機程序是一個漸進的過程不可一蹴而就,畢竟單片機程序是與硬件有密切關系的,我們一般稱為單片機程序叫底層硬件驅動程序
    的頭像 發表于 02-12 14:38 ?3.8w次閱讀
    單片機<b class='flag-5'>程序</b>如何<b class='flag-5'>編寫</b>

    編寫PLC程序的步驟是怎么樣的

    在了解了程序結構和編程方法的基礎上,就要實際地編寫PLC程序了。編寫PLC 程序編寫其他計算機
    發表于 09-11 16:12 ?22次下載
    <b class='flag-5'>編寫</b>PLC<b class='flag-5'>程序</b>的步驟是怎么樣的

    分享用Labview自制評分程序教程

    分享用Labview自制評分程序教程。
    發表于 04-11 15:02 ?0次下載

    Verilog程序編寫規范

    在實際工作中,許多公司對Verilog程序編寫規范都有要求。在公司內部統一Verilog程序編寫規范不僅可以增強程序的可讀性、可移植性,而且
    的頭像 發表于 09-15 09:35 ?4031次閱讀

    如何用PID指令如何編寫PID程序

    PID程序除了可以用PID向導組態的方法編寫,還可以利用PID指令進行編寫,指示程序稍微繁瑣些,如果自己編寫程序可以選用向導完成,但是如果調
    的頭像 發表于 02-13 14:37 ?6132次閱讀
    如何用PID指令如何<b class='flag-5'>編寫</b>PID<b class='flag-5'>程序</b>

    PLC對一鍵啟停不同方式的程序編寫

    ??對于剛入門的PLC新手來說,在沒有理解PLC CPU的掃描工作原理時對于行內偶爾提到的一鍵啟停程序編寫總會有一定的難度。今天和大家分享200系列PLC對一鍵啟停不同方式的程序
    發表于 04-18 11:42 ?903次閱讀

    PLC編寫程序編寫的是什么?

    對于PLC程序編寫,一個好的plc程序一般都具有程序的具有正確性、可靠性、方便性、簡潔性和可讀性就是很好的程序!
    的頭像 發表于 05-10 17:38 ?1862次閱讀
    PLC<b class='flag-5'>編寫程序</b><b class='flag-5'>編寫</b>的是什么?

    大神手工自制CPU的過程

    為了深入理解這個問題,大神耗時整整半年,“逐點”焊接,自制了一個CPU,杰作如下圖所示。
    的頭像 發表于 09-27 09:41 ?1423次閱讀
    大神手工<b class='flag-5'>自制</b><b class='flag-5'>CPU</b>的過程

    codeblocks怎么編寫程序

    Code::Blocks是一款免費、開源的集成開發環境(IDE),它提供了一個方便的平臺來編寫、調試和運行C、C++以及其他編程語言的程序。在本篇文章中,我們將詳細討論如何使用Code
    的頭像 發表于 11-26 10:28 ?1574次閱讀
    主站蜘蛛池模板: 天天看a| 成年黄网站免费大全毛片 | 一级aaa毛片 | 欧美色p | 4438x五月天 4438x亚洲最大 | 日本人xxxxxxxxxⅹ69 | 色综合久久久久久久久五月 | 国产成人精品亚洲日本在线 | 日本人视频-jlzz jlzz jlzz | 日韩亚洲人成网站在线播放 | 99热网址 | 2021国产精品成人免费视频 | 免费的三级网站 | 久久精品网站免费观看 | 欧美同性精品xxxx | 手机看福利片 | 国产一级片免费 | 成年片色大黄全免费 | 一区二区不卡免费视频 | 操一操干一干 | 香蕉操| 久久精品国产精品亚洲人人 | 成人mv高清在线 | 国产伦子系列视频6 | 亚洲国产精品国产自在在线 | 色吧五月婷婷 | 在线免费日韩 | 亚洲欧洲精品成人久久曰影片 | 一级视频在线免费观看 | 天天都色 | 久久99久久99精品免观看 | 椎名空中文字幕一区二区 | 欧美性久久 | 国模大胆一区二区三区 | 综合免费一区二区三区 | 狠狠色综合网站久久久久久久 | 美女国产在线观看免费观看 | 无遮挡很爽很污很黄很色的网站 | 狠狠狠狠狠狠 | 天堂网在线播放 | 九九视频热 |