การปรับใช้ซีพียูที่อ่านได้และให้ความรู้ใน HDL


37

คุณสามารถแนะนำการใช้งาน CPU ใน VHDL หรือ Verilog ที่อ่านและศึกษาได้หรือไม่? ควรมีเอกสารที่ดี

ป.ล. ฉันรู้ว่าฉันสามารถดูได้opencoresแต่ฉันสนใจเป็นพิเศษในสิ่งที่ผู้คนได้ดูและพบว่าน่าสนใจ

PS2 ขออภัยเกี่ยวกับแท็ก sucky แต่ในฐานะผู้ใช้ใหม่ฉันไม่สามารถสร้างใหม่ได้


1
นี่เป็นบล็อกที่ยอดเยี่ยมจากผู้ที่พยายามสร้าง CPU เล็ก ๆ สำหรับ CPLD stevechamberlin.com/cpu
Toby Jaffey

2
HDL able น่าอ่าน
Connor Wolf

@Joby Taffey: ลิงก์เสียนี่คือสิ่งที่คุณต้องการหรือไม่ bigmessowires.com/cpu-in-a-cpld
Brian Carlton

mor1kxการใช้งาน Verilog ของ OpenRISC 1000 มันมีความคิดเห็นบางส่วน OpenRISC มีข้อได้เปรียบที่มี toolchain แต่ก็ยังค่อนข้างง่าย
Janus Troelsen

คำตอบ:


18

คุณอาจจะสนุกกับชุดที่ผมเขียนบทความเกี่ยวกับเรื่องนี้มานานแล้วสำหรับนิตยสารวงจร Cellar, การสร้างระบบ RISC ใน FPGA

แฮ็คมีความสุข!


2
ดูกระดาษออกแบบของฉันได้อีกด้วยการออกแบบ CPU RISC ที่ปรับให้เหมาะสม FPGA แบบง่ายและระบบบนชิป [ fpgacpu.org/papers/soc-gr0040-paper.pdf]ซึ่งแสดงซอร์สโค้ด Verilog สำหรับ FPGA CPU และ SoC
Jan Grey

นั่นเป็นลิ้งค์: /
เอิร์ลซ์

ลบส่วนท้าย] หรือไม่
Jan Grey

7

รับหนังสือเล่มนี้ฉันมีฉบับพิมพ์ครั้งแรก ไม่กี่ปีที่ผ่านมาฉันใช้งาน CPU ของพวกเขาใน Flex 10K10 FPGA บน PCB ที่ฉันออกแบบด้วยปุ่มกดและหน้าจอ 7 ส่วนเดียวสำหรับป้อนข้อมูลและแสดงผลลัพธ์


7

มากขึ้นอยู่กับวัตถุประสงค์ของการศึกษารหัสคืออะไร กล่าวอีกนัยหนึ่งสิ่งที่น่าสนใจสำหรับคุณคืออะไร

หากคุณกำลังทำอยู่เพื่อดูว่าความซับซ้อนที่สามารถเข้าสู่ CPU ได้มากน้อยเพียงใดคุณอาจสนใจศึกษาแหล่งของสถาปัตยกรรมOpenSPARCมากขึ้น จะใช้เวลานานในการดำน้ำ แต่คุณจะได้รับการชื่นชมสำหรับภาพรวมขนาดใหญ่ของไมโครโปรเซสเซอร์ที่ซับซ้อน

จากนั้นถ้าเป็นการศึกษาคุณสมบัติไมโครคอมพิวเตอร์สถาปัตยกรรมเฉพาะคุณจะต้องดูเครื่องจักร RISC ที่ตรงไปตรงมาเช่นAEMBโปรเซสเซอร์ RISC แบบ 32 บิตแบบมัลติเธรดขนาดเล็กและรวดเร็ว(ปลั๊กไร้ยางอาย)

จากนั้นหากสิ่งที่คุณต้องการคือการเรียนรู้รูปแบบการเข้ารหัสและการประชุมที่ดีการออกแบบ LEON2 เป็นสถานที่ที่ดีในการเรียนรู้รูปแบบการเข้ารหัส VHDL ที่ดี

อย่างไรก็ตามถ้าจุดประสงค์ของคุณในการศึกษาโปรเซสเซอร์คือการเรียนรู้วิธีการออกแบบด้วยตัวคุณเองทางออกที่ดีที่สุดของคุณคือการเริ่มต้นด้วยเครื่อง 8 บิตที่เรียบง่าย (เช่น AVR, 8051, PIC ตัวอย่างบนเน็ต)


ปลั๊กไร้ยางอาย - AEMB - โปรเซสเซอร์ littlest ของฉันเอง
sybreon

5

คุณอาจลองตรวจสอบการออกแบบ CPU บางอย่าง Forth เป็นภาษาการเขียนโปรแกรมอย่างง่ายที่มีการกำหนดและการนำไปใช้งานโดยใช้สองกองซ้อน (หนึ่งสำหรับข้อมูลและอีกหนึ่งสำหรับที่อยู่ผู้ส่ง)

โปรเซสเซอร์ VHDL / Verilog ขนาดเล็กจำนวนมากมีให้ใช้งานได้ฟรี

ลิงก์เพิ่มเติมสามารถพบได้ที่นี่:

PS แม้ว่า Forth จะเป็นภาษาที่ค่อนข้างเก่าและคลุมเครือ แต่ VMs แบบอิงสแต็กที่ทันสมัยจำนวนมาก (Java, VMs JavaScript แบบเร็ว) มีการออกแบบในระดับต่ำที่คล้ายคลึงกัน


2

PicoBlaze นั้นดี แต่มันไม่สามารถใช้ได้ใน VHDL ที่ไม่ขึ้นกับผู้ขาย

ตัวเลือกอื่น ๆ ได้แก่ :

  • Picoblaze clone ใน Verilog (คุณน่าจะหาได้ง่าย) ไม่แน่ใจว่าได้รับการดูแลหรือไม่
  • Gumnut เป็นแกนเล็ก ๆ ที่สวยงามซึ่งได้รับการสนับสนุนจากหนังสือ Ashenden เมื่อเร็ว ๆ นี้
  • เครื่องลงทะเบียน / คอมพิวเตอร์ขนาดเล็กโดย Thacker (ประมาณ 200 บรรทัดของ Verilog)
  • Jan Grey XSoC / XR16 (พูดถึงแล้ว)

นอกจากนี้หากคุณกำลังมองหาคอมไพเลอร์สำหรับ CPU ของคุณเป็นไปได้มากที่สุดที่จะได้รับหนึ่งสำหรับซีพียู 16 บิต เมื่อมีคอมไพเลอร์ของ Poderico จากภาษา C ถึง Picoblaze แต่ถูกนำออกจากเว็บ


หากคุณรวมบรรทัดว่างไว้ก่อนรายการคำตอบของคุณจะถูกจัดรูปแบบดีกว่ามาก
Trygve Laugstøl

1

คุณอาจดูโปรเซสเซอร์Xilinx PicoBlaze มันเป็นไมโครคอนโทรลเลอร์แบบฝัง 8 บิตที่น้อยที่สุดและซอร์สโค้ดควรจะใช้ได้


1
นั่นคือ VHDL เชิงโครงสร้างทั้งหมดดังนั้นไม่ควรใช้เป็นเครื่องมือในการเรียนการสอน
Martin Thompson

0

สายเกินไป แต่ฉันให้คำตอบเล็ก ๆ

มีหลักสูตรที่ชื่อว่าจากNand2Tetrisจากมหาวิทยาลัยเยรูซาเล็มหลักสูตรนี้ยังมีอยู่ในหลักสูตรฉันสร้างคอมพิวเตอร์ที่พวกเขาสร้างขึ้นในหลักสูตรนั้น ฉันใช้ภาษาในรูปแบบเพื่อให้สามารถเห็นตัวเองว่าคอมพิวเตอร์ทำงานอย่างไรในรายละเอียดที่น้อยที่สุด และฉันก็ประสบความสำเร็จเครื่องจำลองที่พวกเขาสร้างขึ้นใน Java ไม่สามารถทำทุกอย่างที่ฉันต้องการเห็น

https://github.com/alinsoar/little-computer

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.