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

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

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

3天內不再提示

如何制作一個簡單的16位CPU

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2022-07-06 15:56 ? 次閱讀

如何制作一個簡單的16位CPU,首先我們要明確CPU是做什么的,先得明白下計算機的組成結構(或者計算機的替代品,因為并不是只有計算機有CPU,現在的電子產品都很先進,很多設備例如手機、洗衣機甚至電 視和你家的汽車上面都得裝一個CPU),數字電路基礎,還最好有點編程的基礎。相關文章推薦:用一堆開關做成一個CPU?當然,沒有也沒關系,這些知識都很容易獲得,各種書上面都會提到,并且在接下來的過程中我會提到這些知識)

我們要實現的是一個RISC指令集的CPU,并且我們最后要自己為這個CPU設計指令并且編碼。

首先我們來聽個故事,關于CPU的誕生的故事:

日本客戶希望英特爾幫助他們設計和生產八種專用集成電路芯片,用于實現桌面計算器。英特爾的工程師發現這樣做有兩個很大的問題。第一,英特爾已經在全力開發 三種內存芯片了,沒有人力再設計八種新的芯片。第二,用八種芯片實現計算器,將大大超出預算成本。英特爾的一個名叫特德?霍夫(Ted Hoff)的工程師仔細分析了日本同行的設計,他發現了一個現象。這八塊芯片各實現一種特定的功能。當用戶使用計算器時,這些功能并不是同時都需要的。比 如,如果用戶需要計算100個數的和,他會重復地輸入一個數,再做一次加法,一共做100次,最后再打印出來。負責輸入、加法和打印的電路并不同時工作。這樣,當一塊芯片在工作時,其他芯片可能是空閑的。

霍夫有了一個想法:為什么不能用一塊通用的芯片加上程序來實現幾塊芯片的功能呢?當需要某種功能時,只需要把實現該功能的一段程序代碼(稱為子程序)加載到通用芯片上,其功能與專用芯片會完全一樣。

經過幾天的思考后,霍夫畫出了計算器的新的體系結構圖,其中包含4塊芯片:一塊通用處理器芯片,實現所有的計算和控制功能;一塊可讀寫內存(RAM)芯片, 用來存放數據;一塊只讀內存(ROM)芯片,用來存放程序;一塊輸入輸出芯片,實現鍵入數據和操作命令、打印結果等等功能。

看完這個故事后,可以總結:CPU是一種用來代替專用集成電路的器件(這只是我的理解,不同人有不同理解,這個就智者見智了,我在接下來的例子中也會說明我的想法)。

然后考慮如下這個例子:

例1-1:

41bc0fd0-ed55-11ec-ba43-dac502259ad0.png

例1-3:

41d5a42c-ed55-11ec-ba43-dac502259ad0.jpg

可以看到,以上三個例子都產生了一個從0不斷增加的序列,而且前兩個例子會一直加到溢出又從0開始(這個取決于計算機的字長也就是多少位的CPU,eax是 32位寄存器所以必然是加到4294967295然后回0,而后面那個c程序則看不同編譯器和不同平臺不一樣),后面那個例子則看你用的是什么樣的加法器和多少個D觸發器

那問題就來了,我假設要一個遞減的序列怎么辦呢?前兩個例子很好解釋,我直接改代碼不就得了:

例2-1:

41e7e0b0-ed55-11ec-ba43-dac502259ad0.png

你只需要輕輕敲擊鍵盤,修改了代碼之后,它就會如你所愿的執行。

但是后面那個例子怎么辦呢?可能你已經想到辦法了:如例2-3所示。

例2-3:

41f98e8c-ed55-11ec-ba43-dac502259ad0.jpg

問題就來了,你在鍵盤上敲兩下可不能改變實際電路!上面(例1-3)中是個加法器,但是跑到這里卻變成了減法器(例2-3)!

這樣的話,你就得再做一個電路,一個用來算加法,一個用來算減法,可是兩個電路代表你得用更多的電路和芯片,你花的錢就得更多,要是你不能同時使用這兩個電路你就花了兩份錢卻只干了一件事!相關推薦:CPU如何進行數字加法。

這個問題能被解決嗎?答案是能!

請看例3:

420a747c-ed55-11ec-ba43-dac502259ad0.jpg

這個例子中使用了一個加法器一個減法器,沒比上面的電路省(顯然。。。。難道你想用減法器做加法器的功能?不可能吧!當然,加上一個負數的補碼確實就是減去 一個數,但是這里先不考慮這種問題),多了一組多路器,少了一組D觸發器。總的來說,優勢還是明顯的(兩塊電路板和一塊電路板的差別)。

而sel信號就是用來選擇的(0是遞增,1是遞減)。相關文章:CPU如何進行數字加法。

如果我們把sel信號看做“程序”的話,這個電路就像一個“CPU”能根據“程序”執行不同的“操作”,這樣的話,通過“程序”(sel信號),這個電路就能夠實現復用。

根據上面的結論,我認為(僅僅是個人認為啊~):程序就是硬件電路的延伸!

而CPU的基本思想,我認為就是這樣的。

接下來我們就分析CPU的結構和各個部件,然后實現這個CPU。

什么是單周期CPU,什么是多周期CPU,什么是RISC,什么是CISC

首先大家得有時鐘的概念:這個問題不好解釋 啊。。。。。。可以理解為家里面的機械鐘,上上電池之后就會滴答滴答走,而它“滴答滴答”的速度就是頻率,滴答一下用的時間就是周期,而人的工作,下班, 吃飯和學習娛樂都是按照時鐘的指示來進行的(熬夜的網癮少年不算),一般來說,時鐘信號都是由晶體振蕩器產生的,0101交替的信號(低電平和高電平)。

數字電路都需要一個“時鐘”來驅動,就像演奏交響樂的時候需要一個指揮家在前面指揮一樣,所有的人都會跟著指揮的拍子來演奏,就像數字電路中所有的部件都會跟著時鐘節拍工作一樣。

如下是一個理想的時鐘信號:(注意是理想的)。

4218da30-ed55-11ec-ba43-dac502259ad0.jpg

當然,實際的時鐘信號可能遠沒有這么理想,可能上升沿是斜的,而且占空比也可能不是50%,有抖動,有偏移(相對于兩個器件),可能因為導線的寄生電容效應變得走形。

上面那段如果沒聽懂也沒關系~~~反正就是告訴你,實際的時鐘信號測出來肯定沒這么標準。

而 cpu的工作頻率,是外頻與倍頻的積(cpu究竟怎么算頻率,其實這個我也不太清楚呵呵),因為cpu是通過外部的晶振產生一個時鐘信號,然后再通過內部 的電路(鎖相環),倍頻至需要的頻率。當然,有人問,為什么要這么麻煩呢?直接在電路外邊做個時鐘晶振能產生那么高的時鐘信號就可以了嘛,這個是可以的, 在某些簡單的系統上(例如51單片姬)就是這樣的,但是計算姬的cpu比較復雜,因為一些原因所以必須要做到cpu內。

下面簡單說一下CPU的兩種指令集:CISC和RISC。

說下我的看法(個人看法,如有錯誤還請高手指正):

RISC是Reduced Instruction Set Computer,精簡指令集計算機,典型例子是MIPS處理器。

CISC 是Complex Instruction Set Compute,復雜指令集計算機,典型例子是x86系列處理器(當然現在的x86指令還是當初cisc的指令,但是實際處理器的結構都已經變成了 risc結構了,risc的結構實現流水線等特性比較容易,在計算機前的你如果用的是intel某系列的處理器,則它使用的指令集看上去還是像cisc的 指令,但是實際上你的cpu的結構已經是risc的了)。

一般CISC的處理器需要用微指令配合運行,而RISC全部是通過硬連線實現的, 也就是說,當cisc的處理器在執行你的程序前,還得先從另外一個rom里面讀出一些數據來“指導”處理器怎么處理你的命令,所以cisc效率比較低,而 risc是完全通過部件和部件之間的連接實現某種功能,極大的提高了工作效率,而且為流水線結構的出現提供了基礎。cisc的寄存器數量較少,指令能夠實 現一些比較特殊的功能,例如8086的一些寄存器:

ax,bx,cx,dx,si,di等;段寄存器有:cs,ds,es,ss等。相對的指令功能比較特殊,例如xlat將bx中的值作為基地址,al中的值作為偏移,在內存中尋址到的數據送到al當中(以ds為段寄存器)

而risc的處理器則通用寄存器比較多,而指令的功能可以稍微弱一點,例如:

以nios嵌入式處理器來說明,nios處理器有32個通用寄存器(r0~r31),而指令功能相對x86的弱一些,而且x86進行內存訪問是直接使用mov指令,nios處理器讀內存用的是load,寫內存用的是store,

二者響應中斷的方式也不一樣,舉一個典型的例子,x86的處理器將中斷向量表放在了內存的最低地址(0-1023,每個中斷向量占四個字節),能容納256 個中斷(以實模式的8086舉例)響應中斷時,將中斷號對應的地址上的cs和ip的值裝入到cs和ip寄存器而將原來的地址保存,并且保存狀態寄存器然后 進入中斷處理,而risc則擁有一個共同的中斷響應函數,這個函數會根據中斷號找到程序向系統注冊的函數的地址,并且調用這個函數。一般來說而是用的 cisc指令的長度是不定的,例如x86的xor ax,bx對應機器碼是0x31d8、而push ax是0x50、pop cx是0x59。而risc的指令確是定長的,例如32位。

相關文章推薦:CPU怎么識別我們寫的代碼?如果還有不清楚的。。。。。自行百度,要理解這些概念需要一點時間。

一個CPU的基本結構以及必要組件

42261d44-ed55-11ec-ba43-dac502259ad0.jpg

這個例子引用自DE2開發板套件帶的光盤上的Lab Exercise 9,我們從圖中可以看到,一個CPU包含了通用寄存器組R0~R7,一個ALU(算術邏輯單元),指令寄存器IR,控制器(一般這部分是一個有限狀態機或 者是用微指令實現),還有就是數據通路(圖中的連線)。當然真正的CPU不可能只包含這么一點點組件,這是一個模型CPU,也就是說只是說明CPU的原 理,真正復雜的CPU要涉及到很多復雜的結構和時序,例如虛擬模式需要使用一些特殊的寄存器、為了支持分頁需要使用頁表寄存器等,為了加速內存的訪問需要 使用TLB,加速數據和指令的訪問而使用data cache和instruction cache等等。。。。。當然,那都是后面該考慮的,所以我們先從這個簡單的部分開始講起。

例子中能實現如下指令:

4239943c-ed55-11ec-ba43-dac502259ad0.jpg

mv指令將Ry的數據轉移到Rx中,mvi將立即數D轉移到Rx當中,add將Rx和Ry的和放到Rx中,sub同上,不過執行的是減法。

首先來說明mv指令是如何執行的:mv指令將Ry的值移入Rx寄存器當中,這兩個寄存器都是由一組D觸發器構成,而D觸發器的個數取決于寄存器的寬度,就像 32位機、64位機這樣,那他們的寄存器使用的D觸發器的個數就是不一樣的。當執行mv rx,ry時,中間的多路器(圖中最大的那個multiplexer)選通Ry,讓Ry寄存器驅動總線,這個時候Bus上的信號就是Ry的值;然后再看到 R0~R7上分別有R0in~R7in信號,這個信號是使能信號,當這個信號有效時,在上升沿此觸發器會將din的數據輸入,所以說到這里大家一定想到 了,這個時候Rx觸發器上的Din信號就會變為有效,這樣過了一個時鐘周期后Ry的值就被送到了Rx當中。

與mv指令類似,mvi指令也將一個數據送入Rx當中,只不過這次的數據存在指令當中,是立即數,所以Rx的Din信號會變為有效,而多路器會選擇IR中的數據,因為mvi指令的立即數存在指令當中。并且進行一定處理,例如擴展等。

add 指令會讓多路器先選擇Rx,然后Ain信號有效,這樣一個時鐘周期后,Rx數據被送入Alu的A寄存器當中,這時多路器選擇Ry,addsub信號為 add以指示ALU進行加法操作,Gin有效讓G寄存器存放運算結果,然后再過一個時鐘周期G當中的數據就是Rx與Ry的和,這時多路器再選擇 Gin,Rx的Din有效,過了一個時鐘周期后數據就被存放到Rx當中了。

sub的過程與add差不多,不過addsub信號是sub指示ALU進行減法。

我做的CPU模型

下面我就將我做的CPU模型的RTL網表發出來,代碼我會上傳的,但是這個還只能進行仿真,因為設計 的時候理念有問題,出現了異步設計,而且出現了將狀態機的輸出作為另一個器件的時鐘端的錯誤,所以這個模型只能用于仿真。我用的synplify pro綜合出的RTL,而狀態轉移圖是用的Quartus的FSM Viewer截下來的。

首先是整個系統的概覽:

42489d88-ed55-11ec-ba43-dac502259ad0.jpg

這個比上面的那個簡單模型復雜多了吧!但是別擔心,其實這個只是上面的那個CPU變得稍微復雜了一點,這個和上面那個不同的地方還有:這個CPU是一個多周期CPU而上面的Lab Exercise是一個單周期的CPU

下圖是程序計數器(PC),也就是常見x86處理器里面的ip(instruction poiniter):

42568e5c-ed55-11ec-ba43-dac502259ad0.jpg

紅色部分就是pc了,后面是一個三態橋,連接到了總線上面,這里的數據有時候是要送到地址總線,用于尋內存中的數據,以便完成Instruction Fetch過程。有時候又要送到通用寄存器的數據端,用于將pc的值送到其他寄存器。

下面這個是IR(Instruction Register),這個是多周期處理器的典型特征,因為處理器在第一個周期里面將機器碼從內存取出,然后存放到這個寄存器里面,后面的幾個狀態都是通過這個寄存器里面的數據作為指示執行操作的。

4264ccec-ed55-11ec-ba43-dac502259ad0.jpg

下面介紹一下ALU,ALU是Arithmetic Logic Unit,即算術邏輯單元,這個裝置的作用是進行算術操作和邏輯操作。典型的算術操作例

如:1+1=2,11x23=253,而典型的邏輯操作例如:1 and 1=1,0 or 0 = 0,1《《3=8這種屬于邏輯操作。

4273b4e6-ed55-11ec-ba43-dac502259ad0.jpg

而從圖中大家也看得到,ALU的輸出用一根很長的線連接到了后面,參考整個CPU的圖的話,會發現這些線連到了通用寄存器上面,這是為了讓運算的結果存放回 去,例如你用add eax,1的時候,eax的值被加上1然后放回eax,所以ALU的運算結果要用反饋送回到通用寄存器,而ALU的輸入也應該有通用寄存器的輸出。

下面再介紹ADDRMUX:

4282d732-ed55-11ec-ba43-dac502259ad0.jpg

這個部件是用來選擇地址的,右邊的輸出是CPU的地址總線,而CPU的地址總線就已經送出CPU了(也就是你能夠在芯片的外表上看到引腳了),CPU的地址總線是送到存儲器的地址端的,而現代的計算機系統實際上是相當復雜的,所以其實你家的計算機上CPU是通過北橋芯片訪問內存的(當然也有將內存控制器做到 CPU里面的)左邊是地址的來源,地址的來源即有通用寄存器,也有程序計數器,還有一個是直接從IR里面送出,這是因為有的立即數里面也包含內存地址信息

最后介紹通用寄存器:

428ec8ee-ed55-11ec-ba43-dac502259ad0.jpg

通用寄存器的作用就是用來保存中間值或者用于運算,例如:add eax,2。

相當于eax+2然后送回eax。

最后介紹一下狀態機,這個部分就是CPU的“靈魂”,如果說有了上面那些部件CPU有了一副“軀體”的話,這一部分就是CPU的“靈魂”了:

42a50b36-ed55-11ec-ba43-dac502259ad0.jpg

狀態機基本上與系統所有的組件都連接到一起了,因為上面所說的所有動作的執行,都需要狀態機的控制,狀態機其實就是由一部分觸發器構成的記憶電路和另外一部 分組合邏輯構成的次態譯碼電路構成,還有根據當前狀態和輸入進行譯碼的部分用于控制各個部件,下面是教科書上的典型FSM結構:

42af186a-ed55-11ec-ba43-dac502259ad0.jpg

而我們用的狀態機狀態轉移圖如下:

42bc3acc-ed55-11ec-ba43-dac502259ad0.jpg

因為這個處理器設計的很簡單,所以沒有出現很多狀態,當處理器經歷完以上的狀態之后,處理器就執行完了一條指令。

有的CISC的處理器用微指令進行控制,作用和狀態機相近,這種結構出現在一些比較古老的處理器上,因為那個時候的設計工具和方法沒有現在的先進,所以往往 改動硬件是困難的和高成本的,所以用微指令的話,做好了硬件的結構,要是需要改動只要修改微指令就好了,而現在的電子技術很發達,設計工具也很完備,所以 就有很多直接通過硬連線實現的處理器。

好馬配好鞍,有了處理器,我們就得給它配上一個好的程序,下面我們就用自己設計的處理器進行求和,從1加到100,因為我們沒有設計編譯器,也沒有設計匯編器,所以程序只能用機器碼寫出,示例程序如下:

我們不妨先寫出程序的匯編代碼:

42cac182-ed55-11ec-ba43-dac502259ad0.png

先將內存中存放數據的地址清零,這樣才能存放等下送來的結果,然后將r1寄存器存入循環次數(也就是求和的上限)。然后再將r1的值加到r2中來,r2其實就是放求和的寄存器,最后我們會將r2中的值送到內存中的某個地址存放的。

然后將r1減去1,看看是否為0?如果為0則說明求和結束了,如果不是0則說明還要繼續,結束后程序就跳到ext部分將結果存放到內存中某個地址(例子中給 的是49152也就是二進制的1100000000000000b),最后jmp $是為了讓程序停在這一行,防止程序跑飛(跑飛的程序危害很大!有可能吧數據當代碼或者把代碼當數據!)

轉換成VerilogHDL語言如下:

42d73a34-ed55-11ec-ba43-dac502259ad0.png

42ea2662-ed55-11ec-ba43-dac502259ad0.png

設計中CPU外圍還需要一個內存設備(Memory),我用HDL對其建模,初始化的時候每個內存地址上對應的數據都初始化為隨機的,然后只有從0開始的一系列地址被初始化為我寫的代碼,機器碼對應的匯編指令在注釋中已經給出。

然后是結果,結果應該是r2從0變化到5050(1+2+3+.。..。.+100=5050)

而r1則從100變化到0,變化到0后程序將進入死循環,停止在jmp $那一條。這是仿真開始的時候:

430da4de-ed55-11ec-ba43-dac502259ad0.jpg

大家可以看到初始化后,d0~d7都變成了0,這是r0~r7寄存器的Q端,而state_current和state_next則是狀態機的現態和狀態機 的次態,cpu的各個部件都通過這個狀態機受到控制。狀態名出現的順序和上面的FSM Viewer的連線順序是一樣的。

而且大家可以看到,d2從0變化到了0x64也就是十進制100,說明已經執行了第一次加法了。

再來看看仿真結束:

43257eec-ed55-11ec-ba43-dac502259ad0.jpg

這時候d1變化到了0而d2變化到了0x13ba(十進制的5050),說明程序已經在我們設計的處理器里面運行并且成功的得出了結果!

最后給出一些我用到的指令(跟x86的很像):

433dfe36-ed55-11ec-ba43-dac502259ad0.png

最后再提一下:

我是用synplify綜合的電路,然后用debussy+modelsim仿真的,相關資料請參考:

CPU邏輯設計,朱子玉,李亞民著

Lab Exercise 9出自DE2的開發光盤

原文標題:大神教你制作一個簡單的16位CPU

文章出處:【微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

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

    關注

    68

    文章

    10890

    瀏覽量

    212421
  • 計算機
    +關注

    關注

    19

    文章

    7525

    瀏覽量

    88328
  • 編碼
    +關注

    關注

    6

    文章

    952

    瀏覽量

    54888
  • RISC
    +關注

    關注

    6

    文章

    463

    瀏覽量

    83794
  • 處理器芯片
    +關注

    關注

    0

    文章

    117

    瀏覽量

    19794

原文標題:大神教你制作一個簡單的16位CPU

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DAC3283到底是8的LVDS輸入數據還是16的LVDS輸入數據?

    請問這個DAC到底是8的LVDS輸入數據還是16的LVDS輸入數據啊。。也就是說,這個I路的15:8和7:0,是
    發表于 12-31 08:27

    8單片機HS16P2811產品概述

    HS16P2811是采用低功耗高速CMOS工藝制造的8單片機,它內建了2K*14-bit的OTP、128Byte的SRAM。包含116
    的頭像 發表于 12-17 09:21 ?479次閱讀
    8<b class='flag-5'>位</b>單片機HS<b class='flag-5'>16</b>P2811產品概述

    將軟件從8(字節)可尋址CPU遷移至C28x CPU

    電子發燒友網站提供《將軟件從8(字節)可尋址CPU遷移至C28x CPU.pdf》資料免費下載
    發表于 09-06 10:42 ?0次下載
    將軟件從8<b class='flag-5'>位</b>(字節)可尋址<b class='flag-5'>CPU</b>遷移至C28x <b class='flag-5'>CPU</b>

    ADS837116模數轉換器數據表

    電子發燒友網站提供《ADS837116模數轉換器數據表.pdf》資料免費下載
    發表于 07-24 11:09 ?0次下載
    ADS8371<b class='flag-5'>一</b>款<b class='flag-5'>16</b><b class='flag-5'>位</b>模數轉換器數據表

    簡單的分頻器電路分享

    這是簡單的分頻器電路,該電路的優點是電路小,它僅使用晶體管和其他幾個組件。
    的頭像 發表于 06-10 15:55 ?1590次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>簡單</b>的分頻器電路分享

    CPU的各種知識

    1、CPU和字長:在數字電路和電腦技術中采用二進制,代碼只有“0”和“1”,其中無論是“0”或是“1”在CPU中都是
    的頭像 發表于 04-19 08:26 ?538次閱讀
    <b class='flag-5'>CPU</b>的各種知識

    英特爾五款優秀的CPU介紹

    盡管英特爾曾經聲稱這是世界上第一個 16 CPU,但事實并非如此,事實上,英特爾正在追趕德州儀器 (Texas Instruments) 等公司,后者更早推出了
    發表于 03-18 10:19 ?997次閱讀

    關于PSSI_DMA 16到32的問題求解

    我們最近在用H723的PSSI,由于我們需要對接收到的數據進行32的累加,所以就在DMA初始化的時候將目標內存設置32bit的數組:HAL_PSSI_Receive_DMA(
    發表于 03-18 08:00

    簡單溫度報警電路分析

    下面所示的是簡單溫度報警電路被配置為在熱敏電阻跟蹤的溫度下降或升高超過定水平時發出警報(聲音或通過閉合繼電器觸點)。
    的頭像 發表于 02-25 14:40 ?1138次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>簡單</b>溫度報警電路分析

    簡單的無線LED燈電路

    這篇文章解釋了簡單的無線 LED 燈電路,可用于在夜間自動打開 LED 燈以照亮繪畫。室內燈連接到 433 MHz 無線接收器單元,而發射器安裝在室外。
    的頭像 發表于 02-25 14:03 ?1435次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>簡單</b>的無線LED燈電路

    XC2234l-20F如何使用16tasking編譯器定義段?

    如何使用16tasking編譯器定義段(section指定地址,用于存儲常量),使用的芯片是XC2234l-20F。
    發表于 02-20 07:05

    用Excel構建了16CPU,如何做到的?

    據EDN電子技術設計報道,YouTube 上的 Inkbox在 Excel 中構建并以3Hz時鐘頻率運行,并具有 128KB RAM、16 色 128x128 像素顯示屏和自定義匯編語言,所有這些都在流行的電子表格中運行。
    發表于 01-31 16:36 ?637次閱讀
    用Excel構建了<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>16</b><b class='flag-5'>位</b>的<b class='flag-5'>CPU</b>,如何做到的?

    如何使用PSoC6制作16控制調節?

    我正在嘗試通過鏈接兩 8 寄存器在 PSoC 創建器中創建 16 的控制寄存器。 我打
    發表于 01-26 07:42

    通過HDL制作4計數組件VERILOG ,如何設置像這些標準組件這樣的API?

    我通過 HDL 制作 4 計數組件 VERILOG ,如何設置像這些標準組件這樣的 API? 例如 counter_writeCounter ()、counter_readCo
    發表于 01-25 06:06

    處理器和cpu東西嗎 cpu和主板的區別

    處理器和CPU東西,CPU是指中央處理器(Central Processing Unit)的簡稱,是計算機的核心部件,負責執行各種計算任務。
    的頭像 發表于 01-19 09:52 ?2w次閱讀
    主站蜘蛛池模板: 男女免费网站| www.午夜色| 6969精品视频在线观看| 色停停| 亚洲日本视频| 操她射她| 日本又粗又长一进一出抽搐| www.亚洲综合| 国产三级日本三级日产三| 日鲁夜鲁鲁狠狠综合视频| 亚洲午夜久久久久久噜噜噜| 888午夜不卡理论久久| 91亚洲免费视频| 日本免费在线| 亚洲专区一区| 黄黄的网站在线观看| 一区二区三区高清在线| 91破处视频| 91在线免费看| 一级一级特黄女人精品毛片| 四虎影院观看视频在线观看| 女人被免费网站视频在线| 国产一级特黄在线播放| 中国一级特黄视频| 可以免费看黄色的网站| 免费大片av手机看片| 2019天天操| 老师啊灬啊灬用力啊快224视频| 亚洲 图片 小说 欧美 另类| 日本黄色片段| 欧美一级特黄啪啪片免费看| 色视频免费在线观看| 免费在线看黄色| 三级视频网站| 激情五月五月婷婷| 国产三片理论电影在线| 五月天婷婷丁香中文在线观看| 国产精品japanese人妖| 男校霸把男校草玩出水男男| 国产精品欧美精品国产主播 | 日本久久久|