ไดเรกทอรีนี้ประกอบด้วยแหล่งที่มาของ GHDL ซึ่งเป็นตัววิเคราะห์โอเพ่นซอร์ส คอมไพเลอร์ เครื่องจำลอง และซินธิไซเซอร์ (ทดลอง) สำหรับ VHDL ซึ่งเป็นภาษาคำอธิบายฮาร์ดแวร์ (HDL) GHDL ไม่ใช่ล่าม: ช่วยให้คุณสามารถวิเคราะห์และอธิบายแหล่งที่มาอย่างละเอียดสำหรับการสร้างรหัสเครื่องจากการออกแบบของคุณ การรันโปรแกรมแบบเนทีฟเป็นวิธีเดียวสำหรับการจำลองความเร็วสูง
รองรับมาตรฐาน IEEE 1076 VHDL เวอร์ชันปี 1987, 1993, 2002 เต็มรูปแบบ และบางส่วนสำหรับการแก้ไขปี 2008 และ 2019
การสนับสนุนบางส่วนของ PSL
ด้วยการใช้ตัวสร้างโค้ด (LLVM, GCC หรือ x86_64/i386 เท่านั้นในตัว) มันจะเร็วกว่าตัวจำลองการตีความใดๆ มาก สามารถรองรับการออกแบบที่มีขนาดใหญ่มาก เช่น leon3/grlib
GHDL ทำงานบน GNU/Linux, Windows และ macOS; บน x86
, x86_64
, armv6/armv7/aarch32
, aarch64
และ ppc64
คุณสามารถดาวน์โหลดเนื้อหายามค่ำคืนได้อย่างอิสระ ใช้อิมเมจ OCI (หรือคอนเทนเนอร์ Docker/Podman) หรือลองสร้างมันบนเครื่องของคุณเอง (ดู "การรับ GHDL" ด้านล่าง)
สามารถเขียนรูปคลื่นไปยังไฟล์ GHW, VCD หรือ FST เมื่อใช้ร่วมกับโปรแกรมดูรูปคลื่นแบบ GUI และโปรแกรมแก้ไขข้อความที่ดี GHDL เป็นเครื่องมือที่ทรงพลังมากสำหรับการเขียน ทดสอบ และจำลองโค้ดของคุณ
รองรับการจำลองร่วมกับแอปพลิเคชันต่างประเทศผ่าน Verilog Procedural Interface (VPI) และ/หรือ VHPIDIRECT ดูghdl.github.io/ghdl-cosim
สามารถสังเคราะห์การออกแบบ VHDL ที่ซับซ้อนตามอำเภอใจลงในรายการสุทธิ VHDL 1993 ซึ่งสามารถนำไปใช้โดยปริยายหรือชัดเจนในเฟรมเวิร์กการสังเคราะห์โอเพ่นซอร์สหรือผู้จำหน่าย
GHDL เป็นซอฟต์แวร์ฟรี:
GHDL ได้รับการออกแบบมาเพื่อผสานรวมกับเครื่องมือโอเพ่นซอร์สยอดนิยมหลายตัวได้อย่างราบรื่น ช่วยให้ผู้ใช้สามารถใช้ประโยชน์จากความสามารถเพิ่มเติมสำหรับทั้งเวิร์กโฟลว์การจำลองและการสังเคราะห์
การบูรณาการที่สำคัญอย่างหนึ่งคือการทำงานร่วมกับ Yosys ซึ่งเป็นเครื่องมือสังเคราะห์โอเพ่นซอร์สชั้นนำ การใช้ปลั๊กอิน ghdl-yosys ทำให้ GHDL สามารถใช้เป็นส่วนหน้าสำหรับ Yosys ได้ ทำให้ผู้ใช้สามารถสังเคราะห์การออกแบบ VHDL ได้โดยตรง ทำให้สามารถย้ายจากการจำลองไปสู่การสังเคราะห์ได้โดยไม่ต้องออกจากสภาพแวดล้อม GHDL ซึ่งทำให้ขั้นตอนการออกแบบคล่องตัวขึ้น
GHDL ยังทำงานร่วมกับ cocotb ซึ่งเป็นเฟรมเวิร์กการจำลองร่วมที่ใช้ coroutine ซึ่งช่วยให้สามารถทดสอบการออกแบบ VHDL ที่ขับเคลื่อนด้วย Python สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการเขียนชุดทดสอบที่ซับซ้อนใน Python และการโต้ตอบกับการจำลอง VHDL ในแบบเรียลไทม์
สำหรับการตรวจสอบ GHDL รองรับการทำงานร่วมกับเฟรมเวิร์ก เช่น OSVVM, UVVM และ VUnit ทำให้ผู้ใช้มีชุดเครื่องมือเต็มรูปแบบสำหรับการตรวจสอบการออกแบบ VHDL ไลบรารีการตรวจสอบเหล่านี้เปิดใช้งานเทคนิคการทดสอบขั้นสูง เช่น การตรวจสอบแบบสุ่มแบบจำกัด ความครอบคลุมการทำงาน และการทดสอบการถดถอยอัตโนมัติ
การบูรณาการโดยบุคคลที่สามเหล่านี้ทำให้ GHDL เป็นเครื่องมือที่ครอบคลุมสำหรับการออกแบบดิจิทัล การจำลอง การตรวจสอบ และการสังเคราะห์ เหมาะสำหรับทั้งนักพัฒนารายบุคคลและทีมขนาดใหญ่
แพ็คเกจที่สร้างไว้ล่วงหน้า:
การใช้นักเทียบท่า :
สำหรับผู้ที่ชื่นชอบการบรรจุคอนเทนเนอร์ GHDL ก็มีให้บริการเป็นอิมเมจ Docker เช่นกัน สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณต้องการหลีกเลี่ยงการจัดการการขึ้นต่อกันด้วยตนเอง หรือต้องการสภาพแวดล้อมที่สอดคล้องกันในเครื่องต่างๆ คุณสามารถใช้คอนเทนเนอร์จาก ghdl/docker หรือ hdl/containers ได้ ซึ่งทั้งสองอย่างนี้เสนอสภาพแวดล้อมที่กำหนดค่าไว้ล่วงหน้าพร้อมการติดตั้ง GHDL การเรียกใช้ GHDL ภายในคอนเทนเนอร์ Docker ช่วยให้มั่นใจได้ว่าการตั้งค่าของคุณยังคงแยกจากระบบโฮสต์ของคุณ ทำให้ง่ายต่อการบำรุงรักษาและทำซ้ำบนแพลตฟอร์มต่างๆ ตัวเลือกนี้เหมาะสำหรับผู้ใช้ที่กำลังมองหาการติดตั้งที่มีประสิทธิภาพและไม่ยุ่งยาก
การสร้าง GHDL จากแหล่งที่มา :
ผู้ใช้ขั้นสูงสามารถเลือกสร้าง GHDL จากแหล่งที่มาได้ ทำให้สามารถปรับแต่งและเข้าถึงคุณลักษณะทดลองได้ การสร้างจากแหล่งที่มายังมีประโยชน์สำหรับแพลตฟอร์มหรือการกำหนดค่าที่ไม่รวมอยู่ในแพ็คเกจที่สร้างไว้ล่วงหน้า คู่มือการสร้าง GHDL ให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีการคอมไพล์ GHDL รวมถึงการเลือกแบ็กเอนด์ที่คุณต้องการ (LLVM, GCC หรือ mcode) กระบวนการนี้ช่วยให้ผู้ใช้ควบคุมการตั้งค่าของตนได้อย่างเต็มที่ และช่วยให้ปรับแต่ง GHDL ตามความต้องการเฉพาะของตนได้
หมายเหตุเฉพาะแพลตฟอร์ม :
apt
, dnf
หรือ pacman
ขึ้นอยู่กับการแจกจ่าย โดยทั่วไปการติดตั้งจะตรงไปตรงมา และแพ็คเกจที่สร้างไว้ล่วงหน้าจะได้รับการอัปเดตเป็นประจำGHDL มีข้อดีหลายประการที่ทำให้เป็นเครื่องมือที่ทรงพลังสำหรับการจำลองและการสังเคราะห์ VHDL ข้อดีที่สำคัญประการหนึ่งคือการสร้างโค้ดแบบเนทิฟ ซึ่งช่วยให้จำลองเวลาได้เร็วขึ้นเมื่อเทียบกับตัวจำลองที่ตีความ การเพิ่มประสิทธิภาพนี้จะสังเกตเห็นได้ชัดเจนในการออกแบบขนาดใหญ่และซับซ้อน ซึ่งความเร็วในการจำลองอาจเป็นปัจจัยสำคัญ
นอกจากประสิทธิภาพแล้ว GHDL ยังมีความหลากหลายสูงอีกด้วย รองรับการแก้ไขมาตรฐาน VHDL หลายครั้ง รวมถึงเวอร์ชัน 1987, 1993, 2002, 2008 และ 2019 ความเข้ากันได้ที่หลากหลายนี้ทำให้ GHDL เหมาะสำหรับโครงการเดิมและการออกแบบที่ล้ำสมัย ไม่ว่าคุณจะทำงานกับมาตรฐาน VHDL แบบเก่าหรือเวอร์ชันแก้ไขล่าสุด GHDL ก็มอบความยืดหยุ่นในการจัดการกับมาตรฐานทั้งหมด
ข้อดีที่สำคัญอีกประการหนึ่งคือการรองรับข้ามแพลตฟอร์มของ GHDL มันทำงานบนระบบปฏิบัติการหลัก เช่น Linux, Windows และ macOS และรองรับสถาปัตยกรรมที่หลากหลาย เช่น x86, x86_64, ARM และ PPC64 ช่วยให้นักพัฒนาสามารถใช้ GHDL กับการกำหนดค่าฮาร์ดแวร์ได้หลากหลาย ทำให้ผู้ใช้ในวงกว้างสามารถเข้าถึงได้
การบูรณาการของ GHDL กับเครื่องมือโอเพ่นซอร์สยอดนิยม เช่น Yosys สำหรับการสังเคราะห์ และ cocotb สำหรับการตรวจสอบ ช่วยเพิ่มอรรถประโยชน์ให้ดียิ่งขึ้น การผสานรวมเหล่านี้ทำให้ผู้ใช้สามารถขยายขีดความสามารถของ GHDL ได้มากกว่าการจำลอง ทำให้เป็นโซลูชันที่ครอบคลุมสำหรับเวิร์กโฟลว์การออกแบบ การตรวจสอบ และการสังเคราะห์ VHDL
GHDL ยินดีรับการสนับสนุนจากชุมชน ไม่ว่าคุณจะสนใจที่จะปรับปรุงเอกสาร แก้ไขข้อบกพร่อง หรือเพิ่มคุณสมบัติใหม่ ก็มีหลายวิธีในการมีส่วนร่วม การมีส่วนร่วมเป็นวิธีที่ดีในการช่วยปรับปรุงเครื่องมือและเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของ GHDL ภายใน
ต่อไปนี้คือวิธีที่คุณสามารถเริ่มมีส่วนร่วมได้:
ค้นหาปัญหาที่ต้องดำเนินการ : ตรวจสอบปัญหาที่เปิดอยู่บนพื้นที่เก็บข้อมูล GitHub ปัญหามักมีป้ายกำกับตามความยากหรือประเภท (เช่น "ฉบับแรกที่ดี" สำหรับผู้เริ่มต้น) คุณยังสามารถเสนอแนวคิดหรือการปรับปรุงของคุณเองได้
แยกและโคลนพื้นที่เก็บข้อมูล : เมื่อคุณเลือกปัญหาที่ต้องการดำเนินการแล้ว ให้แยกพื้นที่เก็บข้อมูล GHDL ไปยังบัญชี GitHub ของคุณเอง โคลนพื้นที่เก็บข้อมูลแบบแยกส่วนไปยังเครื่องภายในของคุณเพื่อทำการเปลี่ยนแปลง
สร้างสาขาใหม่ : แนวทางปฏิบัติที่ดีคือการสร้างสาขาใหม่สำหรับแต่ละปัญหาหรือฟีเจอร์ที่คุณกำลังดำเนินการอยู่ สิ่งนี้จะช่วยแยกการเปลี่ยนแปลงของคุณออกจากกัน และทำให้ผู้ดูแลตรวจสอบงานของคุณได้ง่ายขึ้น
ส่งคำขอดึงข้อมูล : หลังจากทำการเปลี่ยนแปลงและส่งมอบให้กับสาขาของคุณแล้ว ให้ส่งคำขอดึงข้อมูล (PR) ไปยังที่เก็บ GHDL หลัก อย่าลืมใส่คำอธิบายที่ชัดเจนเกี่ยวกับที่อยู่ PR ของคุณ และบริบทที่เกี่ยวข้องหรือขั้นตอนการทดสอบ
สำหรับคำแนะนำโดยละเอียดเพิ่มเติม โปรดดูคู่มือการสนับสนุนของเรา (เมื่อสร้างขึ้น) ซึ่งรวมถึงมาตรฐานการเขียนโค้ด คำแนะนำในการทดสอบ และแนวทางปฏิบัติที่ดีที่สุดในการมีส่วนร่วม
เครื่องมือ CLI ช่วยให้สามารถวิเคราะห์ คอมไพล์ จำลอง และสังเคราะห์ (ทดลอง) เพื่อสร้างรายการสุทธิ VHDL 1993 เขียนด้วยภาษา Ada และ C และรองรับแบ็กเอนด์ที่แตกต่างกันสามแบบ ซึ่งบางครั้งเรียกว่า ghdl_mcode
, ghdl_gcc
และ ghdl_llvm
นี่คือจุดเริ่มต้นสำหรับผู้ใช้ส่วนใหญ่
[ทดลอง] ghdl-yosys-plugin เป็นการบูรณาการของ GHDL เป็นโมดูลปลั๊กอินส่วนหน้าสำหรับ Yosys Open SYNthesis Suite ซึ่งใช้ไลบรารี libghdl
(สร้างด้วย --enable-synth
)
ghdl-ls
(ส่วนหนึ่งของ pyGHDL ดูด้านล่าง) ใช้ Language Server Protocol (LSP) ใน Python คุณสมบัติการวิเคราะห์ VHDL ที่จัดทำโดย GHDL นั้นเข้าถึงได้ผ่าน libghdl
ซึ่งสามารถรวมเข้ากับโปรแกรมแก้ไขข้อความหรือ IDES เช่น Vim, Emacs, Atom หรือ Visual Studio Code ดู ghdl/ghdl-ภาษา-เซิร์ฟเวอร์
ghdl-ls
libghdl
เป็นไลบรารีที่ใช้ร่วมกันที่รวมเอาชุดย่อยของคุณสมบัติปกติบวกกับคุณสมบัติบางอย่างที่จะใช้โดยเครื่องมือเสริม (เช่น pyGHDL
) สิ่งนี้ถูกสร้างขึ้นพร้อมกับ GHDL ปกติและรองรับทั้งโค้ดที่ไม่สามารถสังเคราะห์และสังเคราะห์ได้ อย่างไรก็ตาม นี่ไม่ใช่สำหรับผู้ใช้ แต่สำหรับเครื่องมือที่สร้างขึ้นจากแกนหลัก เมื่อกำหนดค่าพร้อมกับ --enable-synth
ไลบรารีแบบแบ่งใช้นี้จะมีคุณสมบัติการสังเคราะห์ด้วย
pyGHDL เป็นอินเทอร์เฟซ Python สำหรับ libghdl
ปัจจุบันมันถูกใช้โดย ghdl-ls
เท่านั้น ; อย่างไรก็ตาม อาจมีประโยชน์สำหรับผู้ใช้ขั้นสูงที่ต้องการสร้างยูทิลิตี้ Python โดยใช้ GHDL มีความคืบหน้าในการรวม libghdl กับ pyVHDLModel (ดู pyGHDL.dom
)
ghdl_simul
ซึ่งรองรับการจำลองการตีความ มีให้ด้วยเหตุผลทางประวัติศาสตร์และเพื่อการพัฒนา/การดีบักเท่านั้น มันช้ามากเมื่อเทียบกับการจำลองที่คอมไพล์ 'ปกติ' และคุณสมบัติบางอย่างไม่ได้รับการรองรับ