ฉันจะเรียนรู้ HDL ได้อย่างไร


24

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

  1. อะไร? ฉันไม่รู้ว่ามาตรฐานคืออะไร แต่ต้องการที่จะเรียนรู้ซึ่งง่ายต่อการรับ ฉันเข้าใจว่า HDL ส่วนใหญ่ได้รับการออกแบบให้ใช้กับ FPGAs ฉันไม่ได้ทำอย่างนั้น
  2. อย่างไร? ฉันควรทำตามตำราเรียนด้วยตัวอย่างที่เป็นอิสระหรือฉันควรเริ่มดำเนินการในโครงการเช่นการนำระบบเล็ก ๆ มาใช้ (อาจเป็นสิ่งที่เหมือนกับการควบคุมสัญญาณไฟจราจร)
  3. ที่ไหน? ฉันจะรับทรัพยากรได้ที่ไหน

1
คุณช่วยอธิบายสิ่งที่คุณต้องการออกจาก HDL ได้ไหม? HDL ส่วนใหญ่ออกแบบมาเพื่อใช้กับ FPGA เพราะนั่นคือสิ่งที่คนส่วนใหญ่ต้องการ FPGA สำหรับ โดยทั่วไปตัวจำลอง (ทำงานจากแผนผังกราฟิก) ใช้สำหรับการออกแบบวงจรที่ไม่ใช่ FPGA และที่ไม่ใช่ ASIC คุณต้องการสร้าง: (1) วงจรดิจิตอลแบบไม่ต่อเนื่องเช่นส่วนประกอบ 74XX (2) วงจรอะนาล็อกเช่นสวิตช์ควบคุม RF เสาอากาศ / เครื่องส่งสัญญาณวงจรออปแอมป์ทั่วไปหรือ (3) วงจรผสมสัญญาณอะนาล็อกเช่นการเชื่อมต่อ ระหว่างสัญญาณดิจิตอลและอนาล็อก
Kevin Vermeer

ฉันคิดว่าฉันต้องการเรียนรู้ HDL เพื่ออธิบายฮาร์ดแวร์ นั่นคือ 1, 2 และ 3 และอีกอย่างหนึ่งก็คือฉันต้องการให้มันไม่ใช่ FPGA เฉพาะเพราะฉันไม่มีสิทธิ์เข้าถึงหรือการเงินเพื่อรับสิ่งเหล่านั้น
Rick_2047

ฉันคิดว่าฉันต้องการเรียนรู้ HDL เพื่ออธิบายฮาร์ดแวร์ นั่นคือ 1, 2 และ 3 และอีกอย่างหนึ่งก็คือฉันต้องการให้มันไม่ใช่ FPGA เฉพาะเพราะฉันไม่มีสิทธิ์เข้าถึงหรือการเงินเพื่อรับสิ่งเหล่านั้น ฉันคิดว่าส่วนใหญ่ฉันต้องการใช้ HDL เพื่อจำลองสิ่งที่ฉันคิด แผนสำคัญของฉันในปีนี้คือการสร้างคอมพิวเตอร์ของฉันเอง ฉันคิดว่าฉันจะใช้ 74xx เหตุใดจึงต้องทดสอบทฤษฎีและวงจรของฉันความคิดของ HDL ขึ้นมา
Rick_2047

คำตอบ:


8

คุณช่วยอธิบาย HDL ที่คุณต้องการใช้ได้ไหม? ตัวเลือกโดยทั่วไปคือ Verilog หรือ VHDL, [แก้ไข] และญาติของพวกเขาVerilog-ASMและVHDL-ASM (สัญญาณผสมแบบอะนาล็อก) [/ แก้ไข] Verilog มีไวยากรณ์คล้าย C ซึ่งทำให้ง่ายต่อการรับถ้าคุณเคยทำงานกับ C มาก่อน แต่สิ่งนี้ทำให้ง่ายต่อการพัฒนานิสัยที่ไม่ดี - คุณไม่สามารถโปรแกรมฮาร์ดแวร์ใน C เพราะมัน ขนานทั้งหมด! เช่นเดียวกับ C มันจะถือว่าคุณรู้ว่าคุณกำลังทำอะไรอยู่และมันง่ายที่จะยิงตัวเองด้วยการเดินเท้า VHDL บังคับให้คุณคิดด้วยวิธีที่แตกต่างกันโดยสิ้นเชิงซึ่งเป็นประโยชน์ แต่ก็ยาก มันละเอียดมากขึ้นและมีแนวโน้มที่จะเตือนคุณถ้าคุณทำอะไรแปลก ๆ เห็นนี้อภิปราย Slashdotหรือบทความนี้

แก้ไข: "ภาษา Netlist" ไม่ใช่สิ่งที่ฉันใช้สำหรับงานออกแบบ (ในโปรแกรมแก้ไขข้อความ) แต่ฉันคิดว่าคุณทำได้ SPICE, รูปแบบของ Cadsoft Eagle และ EDIF ล้วนเป็นตัวอย่าง (โดยมีจุดประสงค์ที่แตกต่างกันมาก) ที่นึกถึง ฉันใช้เน็ตลิสต์เพื่อตรวจสอบว่าแผนผังของฉันถูกต้องเท่านั้น (การเชื่อมต่อแต่ละครั้งในวงจรอีเกิ้ลของฉันสมเหตุสมผล) เพื่อปรับแต่งสิ่งที่เป็นนามธรรมโดยเครื่องมือจำลอง (SPICE คล้ายกับวิธีที่ใช้ ASM ใน C) หรือ ทำการส่งออก / นำเข้าระหว่างโปรแกรมต่าง ๆ (EDIF) อสุรกายภาษา netlisting เกี่ยวข้องกับ Verilog-A [แบ่งปันกระทู้นี้] และเครื่องเทศและถูกออกแบบมาสำหรับการออกแบบและการตรวจสอบการทำงาน MAST
เป็นภาษาการสร้างแบบจำลองส่วนประกอบซึ่งเข้ากันได้กับ Verilog-AMS และ VHDL-AMS การค้นหาบทเรียนเกี่ยวกับภาษาเหล่านี้แสดงให้เห็นว่าเครื่องมือที่ดูเหมือนยูทิลิตี้การจับภาพวงจรมักจะถูกนำมาใช้มากกว่าการเขียนโปรแกรมในภาษา netlisting เอง

ฉันจะทำเช่นเดียวกันกับ Xilinx Spartan FPGA และกระดาน dev Digent อย่างไรก็ตามฉันจะไปกับ Basys ($ 60) หรือ Nexys ($ 100) ถ้าคุณไม่ต้องการอีเธอร์เน็ตในบอร์ดเริ่มต้น ($ 150) ที่กล่าวถึงโดย O Engenheiro (ราคาพร้อมส่วนลดการศึกษา) Basys และ Nexys นั้นราคาถูกกว่าและได้รับความนิยมมากกว่าในโรงเรียนดังนั้นจึงมีแบบฝึกหัดและห้องปฏิบัติการออนไลน์เพิ่ม


ฉันสงสัยว่าการเรียนรู้ภาษา "Netlist" ที่เรียกว่าจะเป็นประโยชน์หรือง่ายกว่าการเรียนรู้ Verilog หรือ VHDL หรือไม่?
Rick_2047

ยากที่จะพูด. ขึ้นอยู่กับสิ่งที่คุณต้องการจะทำกับภาษาของคุณ เราจะได้แนวคิดที่ดีกว่าเกี่ยวกับสิ่งที่คุณต้องการทำและภาษาแบบไหนที่คุณต้องการใช้ก่อนที่เราจะเจาะลึกถึงวิธีและที่สำหรับการเปลี่ยนแปลงภาษาครึ่งโหลและการใช้งานที่หลากหลายทุกครั้ง
Kevin Vermeer

9

ฉันเกือบจะอยู่ในสถานการณ์เดียวกับคุณ

ฉันกำลังทำอะไรอยู่:

ฉันเข้าเรียนหลักสูตร VHDL ขั้นพื้นฐานฟรีที่วิทยาลัยที่ฉันเรียน ผมเล่นกับคณะกรรมการสปาร์ตัน 3E

ดังนั้นฉันซื้อกระดานและฉันจะเริ่มเล่น

เพื่อนของฉันได้แนะนำหนังสือเหล่านี้:

  1. การสร้างต้นแบบอย่างรวดเร็วของระบบดิจิตอล James O. Hamblen, Michael D. Furman
  2. Doone Publications - HDL Chip Design , ดักลาสเจสมิ ธ

และเขาได้แนะนำเอกสารนี้ด้วย:

คู่มือการออกแบบและจำลองการสังเคราะห์ Xilinx


1
ฉันต้องการหนังสือ Hamblen และ Furman เป็นอันดับสอง ฉันออกแบบบอร์ด Altera Flex 10K10 ตัวเล็ก ๆ ของฉันเองและสามารถใช้โค้ดส่วนใหญ่ในหนังสือได้ มันเป็นตำราอาหาร แต่ก็ไม่แย่ไปกว่านั้น
Leon Heller

4
  1. มี HDL สองภาษาคือ VHDL และ Verilog ขอให้อาจารย์ของคุณที่คุณจะได้เรียนรู้และพยายามดูว่ามันทำงานอย่างไร: ไวยากรณ์และวิธีที่คุณสามารถสร้างโมดูลเกี่ยวกับเรื่องนี้และทำการทบทวนใหญ่เกี่ยวกับวงจรดิจิตอลทั้งหมด

  2. ก่อนที่จะทำสิ่งใดสิ่งหนึ่งให้ตรวจสอบให้แน่ใจว่าคุณรู้ทุกอย่างเกี่ยวกับวงจรดิจิตอลเพราะ HDL นั้นไม่ได้สร้างอะไรใหม่คุณใช้สิ่งเหล่านี้ในวิธีที่ต่างออกไป ดังนั้นคุณสามารถใช้หนึ่งในสองหนังสือด้านบนทำแบบฝึกหัดถามคุณอาจารย์หนังสือที่เขาแนะนำและใช้พวกเขาหรือหนึ่งในสองข้างต้น

  3. ถามครูกับคุณว่า FPGA ใช้ในชั้นเรียนหรือไม่หากเป็น Altera, Xilinx, Lattice หรืออื่น ๆ หาก Altera ทำการดาวน์โหลด Quartus Web Edition ถ้า Xilinx, ISE Webpack ให้ดาวน์โหลดฟรีหนึ่งในนี้และ พยายามเรียนรู้เกี่ยวกับซอฟต์แวร์ตัวใดตัวหนึ่งและทำแบบฝึกหัดของคุณจำลองในโปรแกรมใดโปรแกรมหนึ่ง

คุณถูกต้องประมาณ 90% ของงานเกี่ยวกับ HDL อยู่บนตัวจำลองดังนั้นเรียนรู้เกี่ยวกับตัวจำลอง Modelsim และ / หรือตัวจำลอง ISIM บน xilinx พวกเขาสั่งการและทดสอบ testbenches


HDL หลักสองรายการ มีคนนิยมน้อยกว่าเช่น CUPL, MyHDL และ Lava หลักสูตรการออกแบบดิจิทัลที่มหาวิทยาลัยของฉันพูดถึง VHDL แต่ใช้ CUPL ในห้องปฏิบัติการ เพิ่มเติมเกี่ยวกับวิกิพีเดีย: en.wikipedia.org/wiki/…
Yann Vernier

3

ไม่ว่าคุณจะทำงานที่ไหนคุณจะต้องใช้ HDL แบบเดียวกับที่ใช้อยู่แล้วดังนั้นเพื่อเพิ่มโอกาสในการได้รับการว่าจ้างลองและใช้เวลาสักครู่กับทั้ง Verilog และ VHDL มันเคยค่อนข้างเรียบง่าย: Verilog ถูกใช้ในสหรัฐอเมริกาและ VHDL ในยุโรป - ทุกวันนี้มันไม่ง่ายเลย

upthread มีคนพูดถึงการเรียนรู้ที่จะ 'คิดต่าง' สำหรับ VHDL - คุณต้องทำเช่นนั้นด้วย verilog เหมือน C แต่ไม่ใช่ - ที่ดีสำหรับการเริ่มต้นคือการมองและดูว่าสายไฟและสายน้ำถูกสร้างขึ้นระหว่างการสังเคราะห์ - เมื่อคุณมาถึง จุดที่คุณสามารถมองเห็นสิ่งเหล่านั้นและเพียงแค่ 'เห็น' อันตรายจากจังหวะเวลาในหัวของคุณ


2

icarus verilog หรือ verilator เป็นสิ่งที่ฉันอยากจะแนะนำสำหรับการเรียนรู้หรือเล่นกับ verilog ghdl เป็นสิ่งที่ฉันจะใช้เล่นกับ vhdl ห่างไกลจากกระแสหลัก แต่ฉันขอแนะนำ cyclicity-cdl.sf.net ซึ่งมีสภาพแวดล้อมแบบซิมของตนเอง ฯลฯ และผลิต verilog ที่สังเคราะห์ได้ ใช้และเรียนรู้ gtkwave สำหรับตรวจสอบไฟล์. vcd ที่สร้างโดยเครื่องจำลอง


1

ฉันเรียน Verilog ในวิทยาลัยในหลักสูตรเดียว จุดสุดยอดของหลักสูตรนั้นคือการใช้หน่วยประมวลผล Superscalar MIPS แบบ 2 ทาง (30% ของชั้นเรียนทำงานได้อย่างสมบูรณ์; ฉันอยู่ในอีก 70%) ฉันคิดว่าสิ่งต่าง ๆ ในอุตสาหกรรมกำลังเคลื่อนห่างจาก Verilog และต่อ VHDL ที่ถูกกล่าวว่ามีบทเรียนออนไลน์มากมายสำหรับทั้งสองภาษา นี่คือหนึ่งใน VHDLและนี่คือหนึ่งใน Verilog

คุณอาจต้องการใช้ModelSimและคุณอาจใช้รุ่นนักเรียน (ฉันคิดว่ามันฟรีอาจมีข้อ จำกัด ) พวกเขาแนะนำให้ใช้การออกแบบระบบดิจิตอลโดยใช้ VHDL 2nd Editionเป็นตำราเรียน


1

นี่คือชุดพัฒนา FPGA ราคาถูกที่อาจเหมาะกับคุณ อย่างไรก็ตามฉันไม่แน่ใจเกี่ยวกับระดับของเครื่องมือโอเพนซอร์สที่ใช้งานได้ กลุ่มเครื่องมือของผู้ขายนั้นสามารถดาวน์โหลดได้ฟรี ฉันเคยได้ยินว่า ณ จุดราคาชุดนี้มีให้สำหรับมันคุ้มค่าที่จะไปและรับมัน

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