91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Intel MAX 10 FPGA實(shí)現(xiàn)Z80與8051單板計(jì)算機(jī)

FPGA技術(shù)江湖 ? 來(lái)源:OpenFPGA ? 2026-03-20 09:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以下文章來(lái)源于OpenFPGA,作者碎碎思

項(xiàng)目背景

在 1970s 至 1980s,像 Zilog Z80 和 Intel MCS-51(8051) 這樣的 8 位處理器廣泛用于家用電腦、嵌入式設(shè)備和各種單片機(jī)系統(tǒng)。

919e0f54-232e-11f1-90a1-92fbcf53809c.png

它們?cè)O(shè)計(jì)簡(jiǎn)單、指令清晰、學(xué)習(xí)曲線淺,是許多人的入門(mén) CPU。

91fd36b4-232e-11f1-90a1-92fbcf53809c.png

而現(xiàn)在,隨著 FPGA 的普及,我們可以在 FPGA 內(nèi)核中重新實(shí)現(xiàn)這些經(jīng)典 CPU,并構(gòu)建真實(shí)可運(yùn)行的單板計(jì)算機(jī)。

92596510-232e-11f1-90a1-92fbcf53809c.png

這個(gè)項(xiàng)目正是這樣的一個(gè)嘗試:

在一塊 Intel MAX 10 FPGA 開(kāi)發(fā)板上實(shí)現(xiàn) Z80 或 8051 單板計(jì)算機(jī)(SBC),讓它能運(yùn)行原始匯編程序、驅(qū)動(dòng)外圍設(shè)備、顯示輸出并與用戶(hù)交互。

項(xiàng)目使用的硬件平臺(tái)

主板采用的是 Intel MAX 10 FPGA:

92b93206-232e-11f1-90a1-92fbcf53809c.png

是一款基于 Intel 14nm 工藝的低功耗 FPGA

IDE 支持 Quartus Prime

支持配置 Flash、SD 卡、GPIO 等外設(shè)

9313347c-232e-11f1-90a1-92fbcf53809c.png

開(kāi)發(fā)者選用這塊板子的原因是:

成本低

易于學(xué)習(xí) FPGA

有足夠的資源用于模擬 8 位 CPU

支持豐富引腳擴(kuò)展

93720bb4-232e-11f1-90a1-92fbcf53809c.png

SBC 核心架構(gòu)

項(xiàng)目實(shí)現(xiàn)了兩套單板計(jì)算機(jī)系統(tǒng):

Z80 單板電腦

典型架構(gòu)包括:

Zilog Z80 CPU 軟核

內(nèi)存(RAM / ROM

串口 UART

視頻輸出控制器

鍵盤(pán)輸入模塊

整個(gè) CPU 子系統(tǒng)在 FPGA 內(nèi)部運(yùn)行,執(zhí)行傳統(tǒng)匯編指令,像真實(shí)的 Z80 一樣工作。

93cdf0e6-232e-11f1-90a1-92fbcf53809c.png

MCS-51 (8051) 單板電腦

類(lèi)似地,這部分實(shí)現(xiàn)包括:

8051 CPU 軟核

程序 ROM

I/O 模塊

串口 / UART

計(jì)時(shí)器和控制邏輯

8051 是最經(jīng)典的單片機(jī)之一,也是微控制器課程教學(xué)中的主力架構(gòu)之一。

942c998e-232e-11f1-90a1-92fbcf53809c.png

9489a340-232e-11f1-90a1-92fbcf53809c.png

Zilog Z80 SBC 基于 MAX10 FPGA

對(duì)于運(yùn)行 Microsoft BASIC 4.7b 版本的最小 Z80 單板計(jì)算機(jī),需要 8kB 的 ROM 空間和 4kB 的 RAM 空間。此外,還有大量的邏輯元件和存儲(chǔ)位可用,這有利于未來(lái)的擴(kuò)展。

SBC 系統(tǒng)使用 Quartus II 18.1 版本編譯和測(cè)試。只需打開(kāi) Quartus II 并恢復(fù)歸檔文件即可。

項(xiàng)目文件夾還包含 SRAM 目標(biāo)文件 (SOF) 和可編程目標(biāo)文件 (POF),無(wú)需編譯即可使用。

將 Micro USB 數(shù)據(jù)線連接到 MAX10 開(kāi)發(fā)板,并寫(xiě)入 SOF 或 POF 文件。SOF 文件在斷電重啟后會(huì)丟失。POF 文件會(huì)存儲(chǔ)在 FLASH 閃存中,每次上電后都會(huì)被激活。

下面這段 BASIC 代碼只是在 Z80 SBC I/O 端口上從 0 計(jì)數(shù)到 255。

05 REM COUNT 0 To 255 on PORT 145 (Z80)
10 FOR I = 0 TO 255
20 PRINT I,
30 OUT 145, 255-I
35 FOR J = 0 TO 99 : NEXT J
40 NEXT I
45 FOR K = 0 TO 4095 : NEXT K
46 OUT 145,255
50 END

以下代碼使用 Microsoft BASIC 4.7b 版本,在 Z80 上實(shí)現(xiàn) ASCIIART 功能,并采用循環(huán)方式運(yùn)行。要退出循環(huán),請(qǐng)按 Ctrl+C。

10 FOR Y=-12 TO 12
20 FOR X=-39 TO 39
30 CA=X*0.0458
40 CB=Y*0.08333
50 A=CA
60 B=CB
70 FOR I=0 TO 15
80 T=A*A-B*B+CA
90 B=2*A*B+CB
100 A=T
110 IF (A*A+B*B)>4 THEN GOTO 200
120 NEXT I
130 PRINT" ";
140 GOTO 210
200 IF I>9 THEN I=I+7
205 PRINT CHR$(48+I);
210 NEXT X
220 PRINT
230 NEXT Y
240 PRINT
250 GOTO 10

基于 MAX10 FPGA 的 Intel MCS-51 單板計(jì)算機(jī)

有兩個(gè)項(xiàng)目鏡像可供直接使用。英特爾最初將 BASIC-52 Ver 1.1 發(fā)布到公共領(lǐng)域。但該代碼包含大量漏洞和隱藏的惡意信息。

最后一個(gè)版本是 BASIC-52 Ver 1.31,由 Hans-Jürgen B?hling 于 2001 年 2 月發(fā)布。Hans-Jürgen B?hling 還發(fā)布了 I2C 支持的擴(kuò)展代碼。

8kB ROM 和 32kB RAM,頻率 50 MHz:

此鏡像僅包含 8kB 代碼內(nèi)存,不支持任何 I2C 擴(kuò)展。系統(tǒng)包含 32kB RAM 用于用戶(hù)程序。系統(tǒng)時(shí)鐘頻率為 50MHz,由 MAX10 內(nèi)部鎖相環(huán) (PLL) 從 12MHz 頻率轉(zhuǎn)換而來(lái)。

16kB ROM 和 16kB RAM,頻率為 11.059200 MHz:

此鏡像包含 16kB 代碼內(nèi)存,支持 I2C 擴(kuò)展。系統(tǒng)包含 16kB RAM 用于用戶(hù)程序。系統(tǒng)時(shí)鐘頻率為 11.059200 MHz。即使在 11.059200 MHz 的頻率下,該系統(tǒng)的性能也比傳統(tǒng)的 12T 內(nèi)核快 10 倍。I2C 功能在 11.059200 MHz 的系統(tǒng)時(shí)鐘頻率下運(yùn)行良好。

以下程序使用 BASIC-52 語(yǔ)言,在 PORT1 端口上將一個(gè) LED 從最低有效位 (LSB) 移到最高有效位 (MSB),并重復(fù)執(zhí)行。PORT1 端口映射到 8 個(gè) LED。

01 REM 8 LED SHIFT
02 REM SHIFT LEFT AND RIGHT
10 LED = 1
20 IF LED <= 80H THEN PORT1 = 0FFH.XOR.LED ELSE GOTO 1000
30 LED = LED * 2
40 FOR J = 0 TO 999 : NEXT J
50 GOTO 20
900 REM RIGHT SHIFT
1000 LED = 080H
1100 IF LED >= 1 THEN PORT1 = 0FFH.XOR.LED ELSE GOTO 10
1120 LED = LED/2
1130 FOR J = 0 TO 999 : NEXT J
1200 GOTO 1100

以下程序是使用 BASIC-52 編寫(xiě)的 ASCIIART 程序。

01 REM ASCII ART SOFT CPU
02 REM ASCII ART FOR MAX10
03   XTAL=50000000
05   TIME=0 : CLOCK 1
10   FOR Y=-12 TO 12
20   FOR X=-39 TO 39
30  CA=X*0.0458
40  CB=Y*0.08333
50  A=CA
60  B=CB
70  I=0
80  T=A*A-B*B+CA
90  B=2*A*B+CB
100  A=T
110  IF (A*A+B*B)>4 THEN GOTO 150
120  I=I+1 : IF I<=15 THEN ?GOTO 80
130 ? ?PRINT?" ",
140 ? ?GOTO 170
150 ? ?IF I>9 THEN I=I+7
160  PRINT CHR(48+I),
170  NEXT X
180  PRINT
190  NEXT Y
200  PRINT TIME
210  GOTO 10
220  END

我們可以注意到上面列出的 Z80 BASIC 和 BASIC-52 之間只有非常細(xì)微的差別。如果單板計(jì)算機(jī)運(yùn)行在 11.059200 MHz 頻率,則需要注釋掉第 3 行。上述程序適用于 50 MHz 系統(tǒng)。

否則,我們可以在命令提示符中聲明系統(tǒng)頻率。

XTAL = 50000000

上述ASCIIART代碼計(jì)算程序運(yùn)行所需的時(shí)間(以秒為單位)。因此,為了精確計(jì)算時(shí)間,我們需要設(shè)置系統(tǒng)時(shí)鐘頻率。

我們還可以根據(jù)需要實(shí)現(xiàn)其他功能以及 ROM、RAM 組合。

可用鏈接

https://github.com/mit41301/10M08SAM153C8G_Zilog-Z80_Intel-8051

https://www.hackster.io/mit41301/z80-and-mcs-51-sbc-on-a-max-10-fpga-742a9c

結(jié)語(yǔ)

這個(gè)項(xiàng)目展示了一個(gè)非常有趣且實(shí)用的方向:

用 FPGA 重建經(jīng)典單板計(jì)算機(jī),讓你從軟核 CPU 到外設(shè)設(shè)計(jì)全面理解嵌入式系統(tǒng)。

對(duì)于:

FPGA 初學(xué)者

想理解 CPU / 單片機(jī)架構(gòu)

喜歡復(fù)古計(jì)算與硬件實(shí)現(xiàn)

想做軟硬件協(xié)同系統(tǒng)實(shí)驗(yàn)

這個(gè)項(xiàng)目都有很強(qiáng)的啟發(fā)意義。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20280

    瀏覽量

    253026
  • FPGA
    +關(guān)注

    關(guān)注

    1661

    文章

    22439

    瀏覽量

    637231
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6077

    文章

    45514

    瀏覽量

    671500
  • 單板電腦
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    7849

原文標(biāo)題:在 FPGA 上重生的經(jīng)典:實(shí)現(xiàn) Z80 與 8051 單板電腦

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    GE最新雙核Intel Core處理器的單板計(jì)算機(jī)

    繼最近發(fā)布三款基于四核第三代Intel Core處理器的加固單板計(jì)算機(jī)之后,GE智能平臺(tái)發(fā)布了最新的基于雙核Intel Core處理器的單板計(jì)算機(jī)。SBC625, XVR15 和 XC
    發(fā)表于 06-19 09:32 ?2529次閱讀
    GE最新雙核<b class='flag-5'>Intel</b> Core處理器的<b class='flag-5'>單板計(jì)算機(jī)</b>

    【作品合集】賽昉科技VisionFive 2單板計(jì)算機(jī)開(kāi)發(fā)板測(cè)評(píng)

    賽昉科技VisionFive 2單板計(jì)算機(jī)開(kāi)發(fā)板測(cè)評(píng)作品合集 產(chǎn)品介紹: 昉·星光 2是全球首款集成了3D GPU的高性能量產(chǎn)RISC-V單板計(jì)算機(jī),搭載昉·驚鴻-7110(型號(hào):JH-7110
    發(fā)表于 09-04 09:08

    基于PowerPC的單板計(jì)算機(jī)該怎樣去設(shè)計(jì)?

    基于PowerPC的單板計(jì)算機(jī)該怎樣去設(shè)計(jì)?實(shí)時(shí)操作系統(tǒng)VxWorks的BSP開(kāi)發(fā)過(guò)程是怎樣進(jìn)行的?
    發(fā)表于 04-27 06:37

    如何使用工業(yè)相機(jī)和單板計(jì)算機(jī)組建視覺(jué)采集系統(tǒng),通過(guò)利用labview實(shí)現(xiàn)該系統(tǒng)的遠(yuǎn)程控制和圖像采集?

    前面板來(lái)實(shí)現(xiàn)。請(qǐng)問(wèn)各位老哥這種方法可行嗎?或者有什么更好的思路可以交流一下。另外聽(tīng)說(shuō)可以通過(guò)單板計(jì)算機(jī)運(yùn)行wince系統(tǒng)實(shí)現(xiàn)labview的嵌入式開(kāi)發(fā),這樣是否可行?
    發(fā)表于 05-08 17:21

    構(gòu)建基于WDC65C02S和Z80 CPU的微型計(jì)算機(jī)

    描述Gerber_PCB_CPLD_EPM3064_Programmer_PCB我正在尋找一些舊零件來(lái)構(gòu)建基于 WDC65C02S 和 Z80 CPU 的微型計(jì)算機(jī)。這些板將幫助我對(duì)一些
    發(fā)表于 08-31 06:20

    什么是單板計(jì)算機(jī)?

    單板計(jì)算機(jī)基于單一電路板而構(gòu)建的完整計(jì)算機(jī),包括微處理器、內(nèi)存、以太網(wǎng)、I/O、視頻和音頻輸出。設(shè)計(jì)的核心架構(gòu)是微處理器。第一臺(tái)真正的單板計(jì)算機(jī)可能是基于 Intel 8080 CPU
    發(fā)表于 03-09 14:51 ?1.8w次閱讀

    2014國(guó)外創(chuàng)客最具創(chuàng)意10大DIY單板計(jì)算機(jī)項(xiàng)目

    在2014即將結(jié)束之際,廠商積極抓住機(jī)會(huì)發(fā)布新的單板計(jì)算機(jī)(SBC)設(shè)計(jì)。此外,今年創(chuàng)客DIY設(shè)計(jì)的單板計(jì)算機(jī)同樣很吸引眼球。本文是國(guó)外10大有創(chuàng)意的項(xiàng)目。
    的頭像 發(fā)表于 12-29 16:57 ?4w次閱讀
    2014國(guó)外創(chuàng)客最具創(chuàng)意<b class='flag-5'>10</b>大DIY<b class='flag-5'>單板計(jì)算機(jī)</b>項(xiàng)目

    基于Intel處理器技術(shù)的高性能單板計(jì)算機(jī)產(chǎn)品

    英國(guó)并行科技公司(CCT)作為生產(chǎn)高性能嵌入式系統(tǒng)的世界級(jí)企業(yè),相對(duì)于其它公司產(chǎn)品全面的各層次覆蓋,并行公司專(zhuān)注于設(shè)計(jì)和開(kāi)發(fā)基于Intel處理器技術(shù)的高性能單板計(jì)算機(jī)產(chǎn)品。
    的頭像 發(fā)表于 04-13 07:56 ?3080次閱讀

    STD Bus 8085單板計(jì)算機(jī)開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《STD Bus 8085單板計(jì)算機(jī)開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 08-11 09:34 ?3次下載
    STD Bus 8085<b class='flag-5'>單板計(jì)算機(jī)</b>開(kāi)源分享

    Z80 MBC3單板計(jì)算機(jī)開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《Z80 MBC3單板計(jì)算機(jī)開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 11-17 10:23 ?5次下載
    <b class='flag-5'>Z80</b> MBC3<b class='flag-5'>單板計(jì)算機(jī)</b>開(kāi)源

    單板計(jì)算機(jī)為什么對(duì)于嵌入式計(jì)算設(shè)計(jì)很重要?

    幾乎所有計(jì)算解決方案都嵌入了單板計(jì)算機(jī)。從智能設(shè)備到交互式數(shù)字標(biāo)牌,有大量的應(yīng)用程序在幕后部署了單板計(jì)算機(jī)。為什么將單板計(jì)算機(jī)嵌入到所有這些應(yīng)用程序中?主要原因是它是所有應(yīng)用程序的“大
    的頭像 發(fā)表于 09-27 16:15 ?1772次閱讀
    <b class='flag-5'>單板計(jì)算機(jī)</b>為什么對(duì)于嵌入式<b class='flag-5'>計(jì)算</b>設(shè)計(jì)很重要?

    如何選擇適合教育用途的單板計(jì)算機(jī)?

    在當(dāng)今數(shù)字化時(shí)代,計(jì)算機(jī)科學(xué)和編程已經(jīng)成為教育中不可或缺的一部分。為了幫助學(xué)生培養(yǎng)解決問(wèn)題的能力、創(chuàng)造力和創(chuàng)新思維,單板計(jì)算機(jī)(SBCs)成為了一種強(qiáng)大的工具。單板計(jì)算機(jī)(SBCs)是一種集成
    的頭像 發(fā)表于 09-01 10:26 ?1549次閱讀

    單板計(jì)算機(jī)是什么?它與其他計(jì)算機(jī)有何不同?

    單板計(jì)算機(jī)是什么?它與其他計(jì)算機(jī)有何不同? 單板計(jì)算機(jī)(Single Board Computer,SBC)是一種集成了所有計(jì)算機(jī)部件的完整計(jì)算機(jī)
    的頭像 發(fā)表于 12-15 09:58 ?3174次閱讀

    使用邏輯和轉(zhuǎn)換優(yōu)化單板計(jì)算機(jī)(SBC)系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《使用邏輯和轉(zhuǎn)換優(yōu)化單板計(jì)算機(jī)(SBC)系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 09-21 11:28 ?0次下載
    使用邏輯和轉(zhuǎn)換優(yōu)化<b class='flag-5'>單板計(jì)算機(jī)</b>(SBC)系統(tǒng)

    貿(mào)澤電子開(kāi)售全新Arduino UNO Q單板計(jì)算機(jī)

    貿(mào)澤電子開(kāi)售全新Arduino UNO Q單板計(jì)算機(jī)。Arduino UNO Q單板計(jì)算機(jī)(SBC)將高性能計(jì)算與實(shí)時(shí)控制結(jié)合,提供理想的創(chuàng)新平臺(tái)。
    的頭像 發(fā)表于 11-08 09:50 ?1402次閱讀