1 คะแนน โดย GN⁺ 2024-04-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • หลังจากที่ Zilog ประกาศ End-of-Life ของ Z80 เมื่อวันที่ 15 เมษายน 2024 โปรเจ็กต์นี้จึงตั้งเป้าสร้างอิมพลีเมนเทชัน Free and Open Source Silicon(FOSSi) เพื่อใช้แทน Z80
  • เป้าหมายคือพัฒนา ชิ้นส่วนทดแทนแบบเสียบแทนได้ทันทีที่เข้ากันได้ระดับขา สำหรับคอมพิวเตอร์ 8 บิตและชุด DIY อย่าง ZX Spectrum และ RC2014
  • การอิมพลีเมนต์อ้างอิงจาก TV80 Verilog core ของ Guy Hutchison และสังเคราะห์เป็นซิลิคอนจริงด้วย OpenROAD และ open PDK อย่าง SKY130, SG13 และ GF180
  • ชิป tapeout สองครั้งแรกถูกส่งมอบในปี 2025 แล้ว โดยซิลิคอน SKY130 Tiny Tapeout 7 ตัวแรกอยู่ในสถานะ FUNCTIONAL และเวอร์ชัน QFN64 แบบเปิดครบ 40 ขาก็กำลังทดสอบหลังการจัดส่ง
  • ในการทดสอบ Z80 สื่อสารโดยใช้ RP2040/RP2350 เสมือนเป็น RAM, มีการแก้บั๊กคำสั่ง DAA แล้ว แต่การทดสอบ แฟล็กที่ไม่มีเอกสาร 2 รายการของ ZEXALL ยังไม่ผ่าน

เป้าหมายของโปรเจ็กต์และสถานะปัจจุบัน

  • rejunity/z80-open-silicon คือโปรเจ็กต์สำหรับสร้าง โคลนซิลิคอนฟรีและโอเพนซอร์สสมัยใหม่ ของ Zilog Z80
  • Zilog ประกาศ End-of-Life ของ Z80 เมื่อวันที่ 15 เมษายน 2024
  • โปรเจ็กต์นี้มีเป้าหมายให้ชุมชนโอเพนซอร์สและชุมชนอนุรักษ์ฮาร์ดแวร์ช่วยจัดหา ทางเลือก FOSSi สำหรับ Z80
  • ชิป tapeout สองครั้งแรกถูกส่งมอบในปี 2025 แล้ว และชิป ทำงานได้ และกำลังอยู่ระหว่าง การทดสอบ
  • ขณะนี้กำลังพัฒนา เวอร์ชัน DIP40 สำหรับ GF180MCU

วิธีอิมพลีเมนต์บนซิลิคอน

  • ฮาร์ดแวร์เป้าหมายคือชิปที่ใช้เป็น ตัวแทน Z80 แบบเสียบแทนได้ทันที ในคอมพิวเตอร์บ้าน 8 บิตและชุดคอมพิวเตอร์ DIY รุ่นใหม่
    • ตัวอย่างที่ยกมาคือ ZX Spectrum และ RC2014
  • การอิมพลีเมนต์นี้สังเคราะห์เป็นซิลิคอนที่ผลิตได้จริงด้วยโฟลว์ OpenROAD และ open source PDK
  • โครงสร้างพื้นฐาน Tiny Tapeout ถูกใช้เพื่อนำหลายดีไซน์มารวมกันเพื่อลดต้นทุนการผลิตชิปจริงกับ Skywater Foundries
  • CPU core พื้นฐานคือ TV80 Verilog core ของ Guy Hutchison

PDK ที่รองรับและ tapeout

  • open PDK ที่รองรับมี 3 แบบ
    • SKY130: โหนด 130nm ของ SkyWater Technology Foundry
    • SG13: โหนด BiCMOS 130nm ของ IHP Foundry
    • GF180: โหนด 180nm ของ Global Foundry
  • สถานะความคืบหน้าของ tapeout
    • FUNCTIONAL: ซิลิคอน tapeout ตัวแรกบน 130nm SKY130 ผ่าน Tiny Tapeout 7
    • DELIVERED/TESTING: แพ็กเกจ QFN64 แบบเปิดครบ 40 ขา บนกระบวนการ 130nm SKY130 ผ่าน eFabless CI2406 shuttle
    • เวอร์ชัน SG13g2 แบบมัลติเพล็กซ์ 24 ขา มีรายการใน IHP 2024 experimental shuttle และเวอร์ชัน IHP 2025a shuttle ก็ถูกส่งมอบแล้ว
    • WIP: ฟอร์มแฟกเตอร์ DIP40 แบบคลาสสิกที่ใช้ COB ผ่าน Wafer.Space GF180MCU Run 1

ซิลิคอน FOSSi Z80 ตัวแรก

  • เวอร์ชันวนรอบแรกถูกพัฒนาด้วยโครงสร้างพื้นฐาน Tiny Tapeout และ กระบวนการ 130nm โดยมีขนาดได 0.064mm²
  • tapeout ครั้งแรกถูกส่งเข้า eFabless ChipIgnite CI2406 Shuttle ในเดือนมิถุนายน 2024
  • เลย์เอาต์วงจรรวมแบบ GDSII เป็นผลจากโฟลว์วางและเดินสายอัตโนมัติของ OpenROAD และใช้ลอจิกเกต 130nm

การทดสอบและงานที่ยังเหลือ

  • แผนที่ทำเสร็จแล้ว
    • tapeout revision 24 ขา บนโหนด 130nm ผ่าน Tiny Tapeout 07
    • tapeout QFN64 แบบเปิดครบ 40 ขา ผ่าน eFabless ChipIgnite
    • tapeout บน SKY130 และ SG13 เสร็จแล้ว ส่วน GF180 ยังอยู่ระหว่างดำเนินการ
    • ทำ การทดสอบชิป แล้ว
  • สรุปการทดสอบ
    • Z80 สื่อสารโดยใช้ RP2040/RP2350 เสมือนเป็น RAM
    • แก้บั๊กคำสั่ง DAA ที่ชุดทดสอบ ZEXDOC/ZEXALL ตรวจพบแล้ว
    • การทดสอบ ZEXALL 2 รายการที่เกี่ยวกับแฟล็กที่ไม่มีเอกสารยังไม่ผ่าน
  • งานที่กำลังทำหรือยังเหลือ
    • สร้าง PCB adapter สำหรับแปลงจาก QFN64 ไปเป็น DIP40
    • สร้าง COB DIP40 PCB
    • ทดสอบ timing ของสัญญาณ I/O เทียบกับ Z80 ต้นฉบับ
    • เสริม testbench ให้ครอบคลุมคำสั่ง Z80 ทั้งหมด รวมถึงคำสั่ง 'illegal'
    • เปรียบเทียบกับอิมพลีเมนเทชันอื่น เช่น Verilog core A-Z80 และ Z80Explorer ที่อิง netlist
    • สร้างเลย์เอาต์ระดับเกตที่มีหน้าตาเหมือนเลย์เอาต์ Z80 ต้นฉบับ
    • แพ็กเกจเซรามิก DIP40 และโลโก้โปรเจ็กต์/ชิปอาร์ต

โค้ดและการรันบนเครื่อง

  • มีสไลด์เด็คสรุปโปรเจ็กต์และวิดีโอพูดคุยกับ Matthew Venn ให้ดูประกอบ
  • ตำแหน่งโค้ดหลัก
    • src/tt_um_rejunity_z80.v: โมดูลระดับบนสุด ซึ่งเป็นไปตามข้อจำกัดของ Tiny Tapeout และมัลติเพล็กซ์ขาเอาต์พุตไปยัง 8 ขาของชิป Tiny Tapeout
    • src/tv80: อิมพลีเมนเทชัน Verilog Z80 หลัก
    • src/config.tcl: การตั้งค่าสำหรับการสังเคราะห์และการวาง/เดินสายของ OpenROAD
    • src/test/test.py: testbench
  • เอาต์พุตเลย์เอาต์ที่สร้างแล้วอยู่ในโฟลเดอร์ gds และสามารถตรวจดูด้วย KLayout
    • ไฟล์ GDSII ของ Z80 core
    • ไฟล์ OASIS ของชิป Tiny Tapeout 07
  • การทดสอบบนเครื่องทำตามคู่มือทดสอบของ Tiny Tapeout จากนั้นติดตั้ง iverilog, verilator, cocotb, pytest แล้วรัน make ใน src

อุปกรณ์ Z80 ที่ใช้เป็นเป้าทดสอบ

  • มีการระบุคอมพิวเตอร์และคอนโซลคลาสสิกเป็นกรณีทดสอบสำหรับ ฮาร์ดแวร์ทดแทน Z80
    • ZX Spectrum 48K: Z80 3.5MHz
    • ZX Spectrum 128K: Z80 3.54690MHz
    • Amstrad CPC: Z80 4MHz
    • ตระกูล MSX: 3.579MHz
    • SG-1000, Sega Master System, ColecoVision, TRS-80, Sinclair ZX80/ZX81 เป็นต้น
  • ชุดคอมพิวเตอร์ DIY รุ่นใหม่ก็ถูกเสนอเป็นกรณีทดสอบเช่นกัน

ชุดเอกสารอ้างอิง

  • เอกสารเกี่ยวกับ Z80
    • Z80 Datasheet
    • คู่มือผู้ใช้ของ Zilog, คู่มือผู้ใช้ของ Mostek, Zilog Data Book
    • เอกสารคำสั่งที่ไม่มีในคู่มือ, opcode table, เอกสาร timing
  • ประวัติและสิทธิบัตรของ Z80
    • เอกสารเสวนาประวัติการพัฒนา Z80
    • เอกสารการออกแบบไมโครโปรเซสเซอร์ของ M. Shima
    • สิทธิบัตร Z80 ที่หมดอายุแล้ว เช่น การป้องกันแรงดันสไปก์อินพุต, วงจรรีเซ็ต เป็นต้น
  • ดายช็อตและเอกสาร reverse engineering
    • ดายช็อตของ Zilog Z8400, Z84C00, SGB-CPU 01 ใน Nintendo Super Game Boy, Mostek MK3880 เป็นต้น
    • เอกสาร reverse engineering ของรีจิสเตอร์คำสั่ง Z80, bus gate, PLA, การอิมพลีเมนต์รีจิสเตอร์, ALU 4 บิต เป็นต้น
  • อิมพลีเมนเทชันที่มีอยู่แล้ว
    • TV80 Verilog implementation
    • A-Z80
    • Z80Explorer
    • โปรแกรมจำลอง Z80 netlist ออนไลน์ของ Visual6502.org

1 ความคิดเห็น

 
GN⁺ 2024-04-29
ความคิดเห็นจาก Hacker News
  • สิ่งที่ Tiny Tapeout ทำอยู่นั้นยอดเยี่ยมมาก ใครจะคิดว่าเมกเกอร์และนักศึกษาจะสามารถทำให้ดีไซน์ชิปของตัวเองกลายเป็นของจริงได้ด้วยเงินน้อยขนาดนี้
    เครื่องมือก็ดูยอดเยี่ยมเช่นกัน แม้คงออกแบบ Intel CPU รุ่นถัดไปด้วย กระบวนการ 130nm ไม่ได้ แต่การที่ Z80 ใส่ลงไปได้ในพื้นที่ 0.064 mm² นั้นน่าทึ่งมาก
    และก็ดีที่ยังมีทางเลือกเหลืออยู่ ในเมื่อชิปทางการไม่ได้ผลิตอีกต่อไปแล้ว ตอนนี้ชักอยากได้แพ็กเกจเซรามิกสีม่วงเท่ ๆ ที่มีฝาครอบชุบทองบนชิปขึ้นมาเลย
    https://twitter.com/l_vanek/status/1783557817133039738/photo...
    https://tinytapeout.com/

    • กระบวนการ 130nm ก็น่าจะประมาณยุค Pentium III ได้ ไม่เลวเลย
    • เพื่อลดจำนวนคลิก ราคามาตรฐานของ ไทล์ 160 x 100 µm + ASIC + บอร์ดเดโม คือ 300 ดอลลาร์ ยังไม่รวมค่าส่ง และ Efabless กำลังสนับสนุนส่วนลดจองก่อนในราคา 150 ดอลลาร์ ยังไม่รวมค่าส่ง จำกัด 1 คำสั่งซื้อต่อคน
      ไทล์เพิ่มเติมเริ่มที่ชิ้นละ 50 ดอลลาร์ และขาอนาล็อกเพิ่มเติมเริ่มที่ขาละ 40 ดอลลาร์ ถ้าผมไม่ได้คำนวณผิดไปมาก 160 x 100 µm คือ 0.16 x 0.1 mm ดังนั้นไทล์หนึ่งชิ้นมีพื้นที่ 0.016 mm² และไดขนาด 0.064 mm² ก็เท่ากับใช้ 4 สล็อต
  • สำหรับคนที่สงสัย 6502 และรุ่นแยกย่อยหลายรุ่นยังคงถูกผลิตอยู่โดยหนึ่งในผู้พัฒนาดั้งเดิม ดังนั้นคงยังไม่เกิดเรื่องคล้ายกันกับฝั่งคู่ปรับตลอดกาลของ Z80 ในเร็ว ๆ นี้
    [0] https://www.westerndesigncenter.com/wdc/chips.php

    • น่าสนใจที่ Z80 แบบคลาสสิกเพิ่งถูกประกาศยุติการผลิตไปเมื่อแค่ 2 สัปดาห์ก่อน
      https://hackaday.com/2024/04/19/end-of-life-for-z80-cpu-and-...
    • 65C02 อาจล้มเหลวได้หากโค้ด 6502 พึ่งพาคำสั่งที่ไม่เป็นทางการ, การเข้าถึงหน่วยความจำที่เกิดขึ้นโดยบังเอิญ, จังหวะไซเคิลของการคำนวณ BCD, แฟล็กของการคำนวณ BCD หรือการที่โหมดทศนิยมถูกตั้งไว้ในรูทีนอินเทอร์รัปต์
    • 65C02 ก็อาจเกิดเรื่องเดียวกันได้ทุกเมื่อเหมือนกัน ที่ Z80 ถูกยุติการผลิตเมื่อไม่กี่สัปดาห์ก่อนก็เพราะ fab ไม่สามารถหาเวเฟอร์ได้อีกแล้ว ชิปที่ใช้กระบวนการเก่า ๆ ล้วนมีความเสี่ยงแบบนี้
    • เวอร์ชัน PDIP จะเลิกผลิต แต่ eZ80 ยังคงผลิตอยู่
      https://arstechnica.com/gadgets/2024/04/after-48-years-zilog...
      https://en.wikipedia.org/wiki/Zilog_eZ80
      http://www.zilog.com/docs/um0077.pdf
      https://www.zilog.com/docs/ez80acclaim/ps0153.pdf
    • สงสัยเหมือนกันว่าในช่วงประมาณ 10 ปีที่ผ่านมา ยอดขาย Z80 แบบแยกชิ้น เป็นอย่างไร อยากรู้ด้วยว่าซื้อไปใช้ทำอะไร และสัดส่วน DIP/PLCC/แพ็กเกจแบนเป็นเท่าไร
      มันคงลอยอยู่ตามที่ต่าง ๆ เป็นล้านชิ้น แต่ถ้าหายไปจากตัวแทนจำหน่ายอย่าง Mouser หรือ Farnell แล้ว คนที่จำเป็นต้องใช้ก็จะเหลือแค่พวก eBay ซึ่งค่อนข้างวัดดวง
  • Z80 คือ CPU ของ ZX Spectrum ชวนให้คิดถึงความหลัง
    https://en.wikipedia.org/wiki/ZX_Spectrum

    • มีเครื่องดี ๆ เยอะมาก ทั้งตระกูล Amstrad CPC, คอนโซล Sega หลายรุ่น, เครื่อง MSX ยุคแรก ๆ และแน่นอน Tatung Einstein ด้วย เหล่าเครื่องดิสก์ 3 นิ้วจงรวมพลัง
    • ยังมี TRS-80 และโคลนของมันด้วย และในออสเตรเลียกับนิวซีแลนด์ก็มี Dick Smith System-80 มีความทรงจำดี ๆ มากมายจากการเขียนโปรแกรมด้วย EDTASM
      ตอนนั้นมีแค่ไดรฟ์เทปคาสเซ็ต ถ้าโค้ดผิดก็มักต้องกดรีเซ็ต แล้วโหลด EDTASM กับโค้ดของผมจากเทปใหม่
    • ผมนึกว่ามันถูกใช้ใน Game Boy ด้วย แต่ดูเหมือนว่าแม้จะมีส่วนคล้ายกันมาก แต่โดยพื้นฐานแล้ว ไม่เข้ากันได้[0]
      0. https://forums.nesdev.org/viewtopic.php?t=18335
    • มันเป็น CPU ที่อยู่ใน Coleco ADAM คอมพิวเตอร์เครื่องแรกของผมด้วย
      https://en.wikipedia.org/wiki/Coleco_Adam
      ผมยังมีหนังสือ Programming the Z80 ที่ซื้อตอนเด็กอยู่เลย
      https://en.wikipedia.org/wiki/Programming_the_Z80
    • ยังถูกใช้มากใน เครื่องเล่น MP3/"MP4" ไร้ชื่อ ที่แพร่หลายในช่วงกลางถึงปลายทศวรรษ 2000 ด้วย: https://en.wikipedia.org/wiki/S1_MP3_player
  • ผมคิดว่าความสนุกที่แท้จริงของ CPU 8 บิต เก่า ๆ แบบนี้อยู่ที่ความเรียบง่าย และการที่คนคนเดียวสามารถเดินสายทำคอมพิวเตอร์ขึ้นมาเองด้วยมือได้
    ในวิชาไมโครโปรเซสเซอร์ที่มหาวิทยาลัย ผมเคยทำบอร์ด 8088 ซึ่งเป็นวิชาที่ดีที่สุดเท่าที่เคยเรียน และช่วยขจัดความรู้สึกลึกลับเกี่ยวกับไดรเวอร์กับฮาร์ดแวร์ออกไป ภายหลังผมลองออกแบบใหม่ด้วย KiCAD โดยเพิ่มพอร์ตขยาย IO การจัดวางที่ดีขึ้น และพอร์ต LCD สำหรับจอ LCD ตัวอักษร 2x16
    ผมทำต้นแบบกับ Futurlec แต่พลาดอย่างหนักในการกำหนด footprint จนต้องใช้อินเทอร์โพเซอร์ และหลังจากบัดกรี 8284 กับซ็อกเก็ต IC ไปได้แค่นั้น ชีวิตก็ยุ่งจนมันยังอยู่ในกล่องจนถึงตอนนี้
    ไมโครคอนโทรลเลอร์นั้นยอดเยี่ยมเพราะทุกอย่างอยู่ในแพ็กเกจเดียว แต่การที่เราสามารถออกแบบและสร้างคอมพิวเตอร์ด้วยมือได้นั้นให้ความพึงพอใจมหาศาล FPGA ช่วยชุบชีวิตความรู้สึกนั้นกลับมาได้บ้าง แต่ระบบเครื่องมือกลับซับซ้อนน่าปวดหัวแบบไบแซนไทน์

    • เครื่องมือโอเพนซอร์ส ยังไม่สมบูรณ์แบบ แต่กำลังเติบโตอย่างรวดเร็ว ผมทำงานอยู่ในสายนี้ และขอแนะนำโปรเจกต์ OpenROAD[1] ซึ่งรองรับการสังเคราะห์ทั้งหมด รวมถึงการจัดวางและเดินสายสำหรับ FPGA บางรุ่น
      [1] https://theopenroadproject.org/
  • ลองค้นดูแล้วน่าทึ่งที่ Z80 เป็น CPU อายุ 50 ปีแล้ว

  • สิ่งที่สะดุดตาคือการวางวงจรดูเหมือน gate array แบบสม่ำเสมอ มากกว่าการจัดวางแบบกำหนดเองที่มักเห็นในภาพถ่ายได

    • นี่เป็นการ implement ด้วย Verilog จึงใกล้เคียงกับ ซอฟต์แวร์ CPU emulator มากกว่าชิปจริงมาก ๆ เช่น ไม่เกี่ยวข้องกับการจัดวางทรานซิสเตอร์ของ Z80 ดั้งเดิม
      ตัวอย่างเช่น “payload ของคำสั่ง” LD A,(DE) อยู่ที่นี่
      https://github.com/rejunity/z80-open-silicon/blob/974c7711b2...
      และส่วนที่ implement machine cycle เดียวกันในซอฟต์แวร์ emulator ของผมอยู่ที่นี่
      https://github.com/floooh/chips/blob/bd1ecff58337574bb46eba5...
      ทั้งสองต้องตั้ง address bus เป็นค่าของรีจิสเตอร์ DE และในเวลาเดียวกันก็ต้องตั้งพิน MREQ|RD ที่ไหนสักแห่งเพื่อแจ้งภายนอกว่าจะอ่านหน่วยความจำ ใน emulator ของผม สิ่งนี้เกิดขึ้นในมาโคร _mread และใน clock cycle ถัดไปก็อ่าน data bus เข้าไปยังรีจิสเตอร์ A
      จุดที่น่าสนใจคือ implementation ของ Verilog ดูเหมือนจะไม่ได้อัปเดตรีจิสเตอร์ภายใน WZ เป็น DE+1 ดังนั้นผมจึงสงสัยว่าพฤติกรรมที่ไม่ได้จัดทำเอกสารไว้ถูก implement อย่างถูกต้องหรือไม่ แต่การอัปเดต WZ อาจถูกจัดการที่อื่นก็ได้
      สุดท้ายแล้ว หากมองและทำงานจากภายนอกเหมือน Z80 กล่าวคือพินที่ถูกต้องถูกเปิดใช้งานในเวลาที่ถูกต้อง การ implement ภายในก็ไม่สำคัญ
  • สงสัยว่าความเข้ากันได้กับ Z80 ดั้งเดิม จะอยู่ในระดับไหน ของเดิมมีคำสั่งที่ไม่ได้จัดทำเอกสารไว้จำนวนมาก และยังมี “trap gate” อันฉาวโฉ่ที่อาจส่งผลต่อ sequence ของคำสั่งที่พบได้ยากบางแบบด้วย
    ถ้าดู “Oral History Panel on the Founding of the Company and the Development of the Z80 Microprocessor” ที่ลิงก์ไว้บนหน้าเว็บ ก็เป็นไปได้ว่าเป็นการออกแบบเพื่อแยกของดั้งเดิมกับโคลนออกจากกัน

  • ดูเจ๋งดี ผมเคยอยู่ในทีม efabless.com ยุคแรก ๆ และทำด้าน EDA โอเพนซอร์ส

  • เคยได้ยินเรื่อง ALU 4 บิต ของ Z80 เข้าใจว่าในการคำนวณ 8 บิตจะใช้สองครั้ง เลยสงสัยว่าสิ่งนี้ถูกมองว่าเป็นคอขวดใหญ่หรือเปล่า
    และก็สงสัยว่าภายหลังมีส่วนขยายที่เพิ่มการคำนวณจำนวนเต็ม bit width ใหญ่ขึ้นหรือไม่ อยากรู้ด้วยว่าเวอร์ชันโอเพนซอร์สของชิปจะทำให้มีฟีเจอร์และ variant ใหม่ ๆ ได้หรือเปล่า

    • ไม่ใช่คอขวดใหญ่ คำสั่ง ALU ที่ใช้รีจิสเตอร์เป็นแหล่งข้อมูลนั้นทำงานเร็วที่สุดเท่าที่เป็นไปได้อยู่แล้ว คือ 4 clock cycle เวลานี้เท่ากับความยาวของ “machine cycle” สำหรับการ fetch คำสั่ง
      มองอีกมุม ต่อให้มี ALU 8 บิต คำสั่งคณิตศาสตร์ก็ไม่ได้เร็วขึ้น แต่จะใช้ทรานซิสเตอร์เพิ่มเป็นสองเท่าแทน
      ALU 4 บิตเป็นเพียงรายละเอียดการ implement ภายในที่มองไม่เห็นจากภายนอกเท่านั้น ยกเว้นแค่การมีอยู่ของแฟล็ก half-carry ที่แสดง carry จาก nibble ต่ำไป nibble สูง
      ถ้าต้องการ CPU ทดแทนที่เสียบใช้กับ home computer รุ่นเก่าได้ทันที ก็ต้องรักษา timing ของคำสั่งเดิมไว้ มิฉะนั้นซอฟต์แวร์ที่พึ่งพา cycle counting จะไม่ทำงาน อย่างไรก็ตาม ZX Spectrum อาจมีปัญหานี้น้อยกว่า เพราะไม่มีฮาร์ดแวร์วิดีโอแบบ programmable เหมือนอุปกรณ์อย่าง Amstrad CPC
      eZ80 เป็นการออกแบบที่ทันสมัยและมีประสิทธิภาพกว่า รวมถึงมี ALU ที่กว้างกว่า: https://en.wikipedia.org/wiki/Zilog_eZ80 แต่ถ้าใช้เพื่อชุบชีวิต home computer เก่า ๆ ก็ไม่ใช่ตัวเลือก และต้องการโคลน Z80 ที่แม่นยำซึ่งตรงกับ timing ดั้งเดิมและพฤติกรรมที่ไม่ได้จัดทำเอกสารไว้ด้วย
    • Netburst P4 ก็ใช้ ALU 16 บิตที่มีความกว้างครึ่งหนึ่ง แล้วรันที่ 2 เท่าของความถี่ clock เช่นกัน ในทางปฏิบัติคือให้ clock ที่ทั้งสอง edge เหมือน DDR RAM ดังนั้นการทำงานของ ALU ที่มี carry/borrow ระหว่างสองครึ่งจึงใช้เพิ่มอีกหนึ่ง cycle: https://www.realworldtech.com/isscc-2001/7/
  • สงสัยว่ามีใครรู้ไหมว่าใช้สิ่งนี้แล้วคาดหวัง ความเร็วสัญญาณนาฬิกา ได้ประมาณแค่ไหน

    • หน้านี้ระบุไว้ว่า 50 MHz
      https://github.com/rejunity/z80-open-silicon/blob/main/docs/...
    • หากออกแบบโปรเซสเซอร์รุ่นใหม่ที่เข้ากันได้สำหรับระบบเก่า ปัจจัยจำกัดน่าจะเป็น เมมโมรีบัส หากต้องการความเร็วสูงก็จำเป็นต้องมีแคช
      แคชต้องรู้การสลับแบงก์ทั้งหมดที่ระบบทำ และต้องเข้าใจด้วยว่าแบงก์หน่วยความจำถูกแมปเข้ากับพื้นที่หน่วยความจำอย่างไร
      หน่วยความจำแบบอ่านอย่างเดียวทั่วไปสามารถแคชได้ ส่วน RAM ทั่วไปที่ไม่ได้แชร์กับอุปกรณ์อื่นก็แคชได้เช่นกัน ไม่ควรแคช IO แบบ memory-mapped
      RAM ที่แชร์กับอุปกรณ์อื่น เช่น หน่วยความจำวิดีโอ แต่ตัวอุปกรณ์นั้นไม่ได้เขียนลงไป สามารถใช้แคชแบบ write-through และแคชการอ่านทั้งหมดได้ ส่วน RAM ที่แชร์ซึ่งอุปกรณ์อื่นสามารถเขียนได้ ไม่ควรแคช