วิธีรับการออกแบบตัวประมวลผลสู่ FPGA


20

เมื่อไม่นานมานี้ฉันได้เดินทางด้วยการออกแบบตรรกะการเรียนรู้ด้วยตนเอง ผลิตภัณฑ์สุดท้ายของที่นี่คือการทำงานของ CPU 16 บิตที่ทำงานตรงตามที่ได้รับการออกแบบในการจำลอง ตอนนี้ฉันเพิ่งเริ่มค้นหาความเป็นไปได้ของการใส่ลงในซิลิคอนโดยวิธี FPGA ฉันรู้ว่าฉันจะต้องทำการปรับเปลี่ยนจำนวนมากในเวทีอินพุต / เอาท์พุต (โลกแห่งความจริงแตกต่างจากสภาพแวดล้อมการจำลอง) และได้ค้นพบว่าฉันได้ออกแบบทั้งหมดในโปรแกรมที่ไม่ส่งออก netlists หรือรหัส HDL สิ่งที่ฉันมีคือแผนผัง

แต่สมมติว่าฉันไปถึงจุดที่ฉันมี netlist หรือรหัส HDL ของการออกแบบของฉันขั้นตอนต่อไปของฉันที่จะได้เป็นซิลิคอน ไกลจากสิ่งที่ฉันได้อ่านดูเหมือนว่า FPGA เป็นวิธีการแก้ปัญหาของฉัน แต่การดูที่เว็บไซต์ Xilinx และ Altera ทำให้หัวของฉันหมุน ฉันเห่าต้นไม้ผิดไปเหรอ? โดยทั่วไปฉันกำลังมองหาคำอธิบายภาษาอังกฤษแบบธรรมดาว่าขั้นตอนต่อไปสำหรับผู้ชายที่มีแผนผังการทำงานของซีพียูคืออะไร เมื่อฉันรู้ทิศทางที่จะเข้าไปฉันสามารถถอดรหัสหนังสือและคิดออกทั้งหมดที่ฉันต้องรู้เกี่ยวกับการไปที่นั่น นอกจากนี้ยังมีข้อความว่าฉันอยู่ใน Mac OS X แต่ฉันมีกล่อง XP ของ Window ที่ฉันสามารถเสียบได้หากฉันจำเป็นต้องใช้


โปรแกรมอะไรไม่ที่คุณทำในการออกแบบของคุณ? อาจมีตัวแปลงจากบุคคลที่สามอยู่ที่นั่น
Connor Wolf

คำตอบ:


17

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

แก้ไข (แสดงความคิดเห็นของคุณอีกครั้ง)
คุณต้องมีระบบการพัฒนาสำหรับผู้ผลิตเฉพาะราย AlteraและXilinxเป็นผู้เล่นตัวใหญ่และทั้งคู่ต่างก็มีความเชื่อ สิ่งที่คุณเลือกไม่สำคัญนั่นทั้งสองมีส่วนต่างกันมากพอที่จะตอบสนองความต้องการของคุณ
หากคุณต้องการเลือก Xilinx มีซอฟต์แวร์ ISE WebPACK Designซึ่งให้บริการฟรี (ดาวน์โหลดขนาดใหญ่ที่ 3.4GB) ข้อ จำกัด เมื่อเปรียบเทียบกับซอฟต์แวร์รุ่นสูงกว่านี้ไม่ควรรบกวนคุณในเวลานี้
ถัดไปคุณต้องมีคณะกรรมการพัฒนา คุณต้องมีความคิดเกี่ยวกับ FPGA ที่คุณจะต้องเลือก ถ้าคุณไป Xilinx ฉันจะเลือกSpartanอาจจะเป็น Spartan-6 Virtex นั้นเป็น IMO ระดับสูงเกินไปแล้ว ยังคงมีให้เลือกมากมายเช่นกันส่วนใหญ่แตกต่างกันในความพิเศษบนกระดาน คุณจะต้องการบอร์ดที่มีสวิตช์และไฟ LED มากกว่าสองสามบิต ฉันจะระวังขั้วต่อแป้นพิมพ์และโมดูลการแสดงผล
Xilinx มีบอร์ดจำนวนหนึ่งและสำหรับ Xilinx FPGAs ก็มีDigilent , Avnet , Xessและอื่น ๆ อีกมากมาย

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

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


ฉันใช้ Logisim ซึ่งเป็นสิ่งที่ยอดเยี่ยมสำหรับแผนงาน แต่ไม่มีวิธีการแสดงผลอะไรนอกจากรูปภาพ (png, jpeg เป็นต้น) ในความสับสนของ FPGA ที่ฉันมีส่วนหนึ่งเป็นเรื่องของอุปกรณ์มากมาย แต่ฉันก็ไม่พบแหล่งข้อมูลที่อธิบายพื้นฐานและพื้นฐาน ถ้าฉันวางซีพียูของฉันไว้ที่นั่นมันจะติดต่อกับโลกภายนอกได้อย่างไร? ฉันต้องการอุปกรณ์อะไร ฉันสามารถตั้งโปรแกรม FPGA ซ้ำ ๆ ได้หรือไม่? และอื่น ๆ เป็นต้นมันเป็นเพียงการขาดความคุ้นเคยกับเรื่อง ฉันเดาว่าฉันต้องการไกด์นำทาง แต่ไม่พบคู่มือเลย
Rory O'Hare

2
คำถามของคุณตามลำดับ: 1) ส่วนต่อประสาน FPGA กับโลกภายนอกผ่านหมุด I / O ความแตกต่างคือคุณสามารถเลือกพินซึ่งแตกต่างจากชิปเฉพาะ 2) คุณสามารถเริ่มต้นด้วยชุดเริ่มต้นชุดพัฒนาหรือคล้ายกัน นี่จะมี FPGA, คอนเน็กเตอร์สำหรับ I / O และแหล่งจ่ายไฟบนเครื่อง ส่วนใหญ่รวมถึงโปรแกรมเมอร์ หากไม่ลืมที่จะได้รับหนึ่ง 3) ใช่คุณสามารถ reprogram FPGA โปรแกรมจะถูกเก็บไว้ในชิปในสิ่งที่เป็นหลักลงทะเบียนกะยักษ์ ในการเริ่มต้นเครื่องสถานะเฉพาะหรือแหล่งข้อมูลภายนอกจะโหลดลงในชิป
Mike DeSimone

9

ฉันไม่คุ้นเคยกับเครื่องมือของ Xilinx แต่ฉันอยู่กับ Altera ดังนั้นฉันจะบอกคุณเกี่ยวกับพวกเขา Xilinx และอื่น ๆ ไม่ควรแตกต่างกัน

Verilog

สิ่งแรกที่คุณจะต้องทำคือการเรียนรู้Verilog สิ่งนี้จะทำให้คุณปวดหัวเพราะ Verilog (และ VHDL ที่ค่อนข้างคล้ายกัน) ได้รับการออกแบบเป็นแบบจำลองเป็นครั้งแรกภาษาและโครงสร้างจำนวนมาก (เช่น#5ซึ่งหมายความว่า "รอ 5 ขั้นตอนเวลา" ซึ่งเป็นขั้นตอนเวลามักจะเป็นเสี้ยววินาที) ดังนั้นจึงมีข้อ จำกัด มากมายที่คุณต้องจำไว้เพื่อทำให้รหัส Verilog ของคุณสามารถสังเคราะห์ได้เช่นรวบรวมเป็นบิตสตรีมสำหรับ FPGA

สิ่งที่น่าตกใจที่สุดก็คือสิ่งที่คุณเขียนใน Verilog (และ VHDL) คือ พฤติกรรมที่คุณคาดหวังจากระบบและคอมไพเลอร์จะอ้างเหตุผลที่เหมาะสมจากคำอธิบายของคุณ หากคุณไม่ระวังคุณจะได้รับข้อบกพร่องที่น่ารังเกียจมากมายจากสิ่งนี้

ตัวอย่างเช่น D flip-flop ดูเหมือนว่า:

always @(posedge RESET or posedge CLK)
begin
    if(RESET)
        Q <= 1'b0;
    else if(CLK_ENA)
        Q <= D;
end

สิ่งนี้อธิบายถึงวิธีการทำงานของ DFF และคอมไพเลอร์ต้องวิเคราะห์และคิดว่าคุณต้องการ DFF @(...)จะเรียกว่าเป็นรายการไวซึ่งเป็นรายการของสัญญาณที่เรียกประเมินของบล็อกรหัสที่; ดังนั้นในบล็อกนี้Qจะเปลี่ยนแปลงเฉพาะในกรณีที่มีขอบที่เพิ่มขึ้นRESETหรือCLK(สำหรับการรีเซ็ตที่ใช้งานสูง) หากคุณลืมบางสิ่งในรายการความไว (ซึ่งควรมีตัวแปรทางด้านขวาทั้งหมดโดยไม่มีposedgeหรือnegedgeตัวดัดแปลงสำหรับบล็อกเชิงตรรกะเชิงผสม) คอมไพเลอร์จะสังเคราะห์แลตช์ตามต้องการแทนที่จะเรียกว่าเกิดข้อผิดพลาด บ้า แต่มันเป็นอย่างนั้นเพราะ Verilog เป็นภาษาจำลองที่ซ่อนรายละเอียดการติดตั้ง (และไม่จำเป็นต้องใช้) VHDL เหมือนกัน แต่ verbose มากขึ้น

ในที่สุด Verilog เวอร์ชั่นใหม่ที่ชื่อว่าSystemVerilogได้รับการเผยแพร่เมื่อไม่กี่ปีที่ผ่านมาซึ่งทำให้การเขียนโค้ดที่สามารถสังเคราะห์ได้ง่ายขึ้นมากมาก ถ้าเป็นไปได้ให้เรียนรู้ภาษานี้เพราะ Xilinx ISE และ Altera Quartus II รองรับทั้งสองอย่าง ปัญหาหลักคือการขาดวัสดุอ้างอิงที่ดีที่สุด

รุ่น SystemVerilog ของ DFF ล้างสิ่งเล็ก ๆ น้อย ๆ สองอย่าง:

always_ff @(posedge RESET, posedge CLK)
begin
    if(RESET)
        Q <= '0;
    else if(CLK_ENA)
        Q <= D;
end

โปรดทราบว่าสัญญาณในรายการความไวจะถูกคั่นด้วยเครื่องหมายจุลภาค นี่เป็นเพราะorสับสนเพราะandไม่สามารถทำงานได้ที่นั่น นอกจากนี้ให้สังเกตการแทนที่1'b0(หนึ่ง0บิต) ด้วย'0(สัญลักษณ์ที่ขยายออกไปอย่างไรก็ตาม0จำเป็นต้องมีบิตจำนวนมากขึ้นอยู่กับสิ่งที่มันถูกมอบหมายให้; มีความยืดหยุ่นมากขึ้นกับโมดูลพารามิเตอร์) ในที่สุดให้สังเกตการแทนที่always(ซึ่งสามารถนำไปใช้เพื่ออะไรก็ได้; ตรรกะเชิงผสม, แลตช์และฟลิปฟล็อป) always_ffซึ่งต้องการเนื้อหาเพื่อสังเคราะห์เป็นฟลิปฟลอป นอกจากนี้ยังมีรายการalways_combที่จะกำจัดรายการความไวเนื่องจากมันเพียงแค่กำจัดความไวจากอินพุตไปยังบล็อก

การออกแบบซอฟต์แวร์ Altera เรียกว่า Quartus II และคุณจะได้รับการมองหาWeb Edition (รุ่นการสมัครรับข้อมูลค่อนข้างแพงและจำเป็นสำหรับรุ่น FPGA ที่เร็วที่สุดหรือล่าสุดเท่านั้น)

ส่วนที่น่าเศร้าคือฉันไม่ได้พบหนังสือที่ดีเกี่ยวกับเรื่องนี้ สิ่งที่ฉันได้เรียนรู้ฉันได้รับจากการรวบรวมสิ่งต่าง ๆ เข้าด้วยกันจากหลาย ๆ แหล่งเช่นหนังสือ Verilog ที่ทำงานได้ไม่ดีในการบอกคุณว่าสิ่งใดที่สามารถสังเคราะห์ได้ Quartus II มีคำสั่ง "แทรกเทมเพลต" ที่แทรกรหัสเทมเพลตสำหรับโครงสร้างทั่วไปหลายอย่างตั้งแต่ D flip-flop ไปจนถึงเครื่องสถานะ

ฮาร์ดแวร์สาธิต

เมื่อคุณติดตั้งโปรเซสเซอร์ใน Verilog คุณจะต้องสร้างมันขึ้นมา ในขณะนี้ให้ Quartus เลือกชิป (คุณต้องเลือกครอบครัว; ฉันแนะนำ Cyclone IV) และ pinout คุณจะรู้ว่าคุณต้องการชิปมากแค่ไหน มันจะบอกคุณว่าองค์ประกอบตรรกะจำนวนมาก flip flops, RAM บิต ฯลฯ ที่คุณใช้ ตรวจสอบให้แน่ใจว่าคุณไม่เกิน 50% สำหรับผู้ใดก็ตาม หากคุณเป็นเช่นนั้นให้ดูที่ชิปที่คอมไพเลอร์เลือกและเลือกชิปที่ใหญ่กว่า (ในองค์ประกอบทางตรรกะ) ตัวถัดไปซึ่งมีพินอย่างน้อยที่สุดเท่าที่จะเป็นไปได้

จากนั้นไปซื้อกระดานสาธิตที่มีชิปอย่างน้อยใหญ่เท่ากับบอร์ดที่คุณสร้างในที่สุด ตรวจสอบว่ามีอุปกรณ์ต่อพ่วงและ / หรือตัวเชื่อมต่อ I / O ที่คุณต้องการ ไม่ใช่เรื่องแปลกที่จะสร้าง daughtercard ที่เสียบเข้ากับตัวเชื่อมต่อส่วนขยายเพื่อมอบฮาร์ดแวร์ที่ขาดหายไป

ตอนนี้คุณได้เลือกฮาร์ดแวร์ของคุณแล้วคิดหา pinout จริงและใช้ Pin Planner เพื่อวางสัญญาณที่ถูกต้องบนหมุดขวา บอร์ดสาธิตจะมีคู่มือผู้ใช้ที่บอกคุณว่าพินใดที่เชื่อมต่อกับอุปกรณ์ใดหรือพินตัวเชื่อมต่อบนบอร์ดสาธิต

เมื่อคุณตั้งค่าพินแล้วให้สร้างขึ้นอีกครั้งเพื่อใช้พินที่คุณต้องการ โปรดจำไว้ว่าสัญญาณบางอย่างเช่นนาฬิการะบบจะต้องมีพินอินพุตโดยเฉพาะ (ดังนั้นพวกมันจึงส่งตรงไปยัง PLL ภายใน)

ใช้โปรแกรมเมอร์เพื่อดาวน์โหลดงานออกแบบของคุณลงใน FPGA โดยตรง (นั่นคือ shift register ที่ฉันพูดถึงไปสักพักหนึ่ง) ตอนนี้คุณอยู่ในวงจรการแก้ไขข้อบกพร่องที่คอมไพล์แล้ว เอาชนะมันจนกว่าจะได้ผล

เมื่อทำงานแล้วคุณสามารถใช้โปรแกรมเมอร์เพื่อดาวน์โหลดรหัสลงในอุปกรณ์การกำหนดค่าออนบอร์ดเพื่อให้โปรแกรมของคุณจะโหลดและทำงานบนเปิดเครื่อง

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

โชคดี!


เยี่ยมมากมีประโยชน์มาก เพียงเพื่อตรวจสอบสิ่งหนึ่งที่ฉันได้ยินเกี่ยวกับการจับภาพวงจร นั่นเป็นทางเลือกที่เป็นไปได้ในการเรียน verilog หรือไม่? ฉันจะเรียนรู้ถ้าฉันต้องทำ แต่ถ้ามันไม่จำเป็น 100% ฉันก็ไม่ควรเพิ่มเข้าไปในรายการสิ่งที่ฉันต้องรู้ ขอบคุณมาก.
Rory O'Hare

สุจริตไม่จริง ปัญหาใหญ่อย่างหนึ่งคือคุณอยู่ในความเมตตาของโปรแกรมจับภาพวงจร: ถ้าใช้วงจรของคุณและสร้าง Verilog ที่ไม่ถูกต้องคุณจะทำอย่างไร ในขณะที่เขียน Verilog จะทำให้คุณมีอำนาจที่จำเป็นในการแก้ไขข้อบกพร่องทั้งหมด อย่างไรก็ตามเหตุผลสำคัญก็คือมีสิ่งต่าง ๆ ที่การจับภาพวงจรจะไม่ทำเช่นเดียวกับ Verilog: โมดูลที่ปรับพารามิเตอร์และการแยกและรวมบัสเป็นสิ่งที่ข้ามไปสู่ความคิดได้ทันที
Mike DeSimone

1
มีเครื่องมือใดบ้างที่สามารถเปลี่ยนภาษา "ฮาร์ดแวร์อธิบาย" ให้เป็น Verilog หรือ VHDL (เช่นถ้าฉันต้องการ net Z เป็นฟล็อปฟล็อปที่มีการป้อนข้อมูลเป็นการรวมกันของ A, B และ C ซึ่งจะรีเซ็ตแบบอะซิงโครนัส C และ D นั้นเป็นเรื่องจริงมันจะดีถ้าได้พูดอะไรบางอย่างZ:= A & (B # C); Z.ar = C & D;โดยไม่ต้องกังวลเกี่ยวกับรายการความไวและอื่น ๆ )
supercat

Altera Quartus อนุญาตให้คุณป้อนการออกแบบของคุณเป็นแผนผังหรือ AHDL (เวอร์ชัน VHDL ของ Altera) หรือชุดค่าผสมใด ๆ ซึ่งอาจรวมถึง HDL อื่น ๆ (สมัยเก่าฉันใช้รายการแผนผังสำหรับโครงการ CPLD และ FPGA ด้วย AHDL เล็กน้อย)
Peter Bennett

เพื่อให้ชัดเจน AHDL ไม่ใช่ VHDL รุ่น ทั้ง VHDL และ Verilog เป็นภาษาที่ใช้อนุมานได้ซึ่งโค้ดของคุณอธิบายถึงพฤติกรรมของวงจรที่ต้องการและคอมไพเลอร์ต้องสรุปการใช้งานจากคำอธิบายพฤติกรรมนั้น นี่คือมรดกของความจริงที่ว่าทั้งสองเริ่มต้นเป็นภาษาจำลองและถูกนำมาใช้ซ้ำสำหรับการสังเคราะห์ AHDL เป็นภาษาที่มีการประกาศที่คุณประกาศแบบดั้งเดิม (เช่น flip-flop, ตารางความจริง) และวิธีที่พวกเขาเชื่อมต่อกันดังนั้นคอมไพเลอร์ไม่จำเป็นต้องเดา AHDL มีอายุย้อนกลับไปในยุค 80 และใกล้กับ ABEL มาก
Mike DeSimone

5

ใช่ FPGA เกือบเป็นทางออกของคุณแล้ว!

คุณเกือบจะต้องใช้ภาษาของฮาร์ดแวร์คำอธิบายอย่างใดอย่างหนึ่งหรือใส่ schematics ของคุณลงในเครื่องมืออื่น ฉันขอแนะนำให้เทียบกับวิธีแผนผังเป็น

  1. ผู้จำหน่ายเครื่องมือ FPGA ไม่ค่อยสนับสนุนพวกเขาอย่างดี
  2. มันไม่ใช่แบบพกพา

เมื่อคุณเขียน HDL ตราบใดที่คุณไม่ได้แทรกสิ่งต่าง ๆ โดยตรงจากไลบรารีผู้ขายโดยใช้ "ตัวช่วยสร้าง IP" ของพวกเขาหรือโดยการวางโดยตรงในคอมโพเนนต์จากไลบรารีของพวกเขาคุณจะมีรหัสที่คุณสามารถพอร์ตไปยังชิปอื่น ๆ ได้อย่างง่ายดาย (มากไปกว่าการยกตัวอย่างพอร์ต C IME ในตัว

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

HDL ขนาดใหญ่ 2 อันคือ VHDL และ Verilog คุณอาจต้องการอ่านคำตอบนี้เพื่อดูว่าพวกเขาต่างกันอย่างไร ...

VHDL หรือ Verilog?

ฉันยังบอกด้วยว่า MyHDL ก็คุ้มค่าที่จะดูถ้าคุณรู้จัก Python อยู่แล้ว - ให้ความสามารถในการตรวจสอบขนาดใหญ่กับคุณ แต่ยังคงเป็นตัวควบคุมระดับต่ำส่วนใหญ่ที่ HDL ปกติให้

เมื่อคุณเลือก HDL แล้วทำงานนั้น (อีกครั้งขอโทษ!) ในสถานการณ์จำลองคุณจะอยู่ในสถานะที่คุณสามารถผลักดันมันผ่านเครื่องมือของผู้ขายและเรียนรู้งานชิ้นใหญ่ชิ้นต่อไป - เมื่อมันจำลอง ถูกต้องมีความพยายามมากกว่าที่คุณคิดเพื่อให้สังเคราะห์ :)

หากคุณแต่งงานกับแผนงานและสามารถได้รับใบอนุญาต LabviewFPGA อาจเหมาะกับคุณ


3

รับสำเนา Rapid Prototyping ของระบบดิจิตอลโดย Hamblen et al:

http://users.ece.gatech.edu/~hamblen/book/bookte.htm

ส่วนใหญ่ใช้ VHDL ซึ่งฉันชอบ Verilog

มันประกอบไปด้วยซีพียู 8 บิตที่ง่ายมาก uP3 ซึ่งฉันนำมาใช้กับฮาร์ดแวร์ Altera FLEX 10K ของตัวเองเมื่อหลายปีก่อนโดยใช้หนังสือรุ่นก่อนหน้า ฉันจะพอร์ตไปยังบอร์ด Cyclone II ราคา $ 25เมื่อฉันได้รับ "แผงด้านหน้า" PCB ของฉัน นอกจากนี้ยังมีโปรเซสเซอร์ MIPS และ Altera NIOS II คุณสามารถทำงานผ่านแบบฝึกหัด uP3 ในหนังสือด้วยเครื่องมือ Altera Quartus II ฟรีเขียนโค้ดซีพียูของคุณใน VHDL และทำให้มันทำงานบนบอร์ด Cyclone II อีกทางหนึ่งคือ Quartus II มีแผนผังและคุณควรป้อนแผนผังของคุณโดยตรงจำลองและเรียกใช้บน Cyclone II


1

หากความยากลำบากคือช่วงการเรียนรู้ที่สูงชันพร้อมทักษะเครื่องมือให้ทำตามเส้นทางที่ง่ายที่สุด Actel (ปัจจุบันคือ Microsemi) มีLiberoซึ่งเป็นแพ็คเกจของเครื่องมือ FPGA ที่ต้องอ่านค่าเป็นศูนย์และง่ายต่อการเริ่มใช้งาน: ทันทีหลังจากติดตั้งเสร็จแล้ว คุณสามารถสร้าง schematics ได้ด้วยมือจริง ๆ และด้วยการคลิกเพียงไม่กี่ครั้งก็อัปโหลดไปยัง FPGA ทางกายภาพหน้าจอเกี่ยวกับวิธีที่จะอธิบายได้ด้วยตนเอง


0

หากคุณเลือกที่จะเรียนรู้ HDL ซึ่งคุณอาจมีอิทธิพลต่อซึ่งเป็นภาษาที่ดีกว่า ในยุโรป VHDL ได้รับความนิยมมากขึ้น ในสหรัฐอเมริกา Verilog ได้รับความนิยมมากกว่ายกเว้นในอุตสาหกรรมป้องกันประเทศซึ่งเป็น VHDL (กระทรวงกลาโหมของสหรัฐอเมริกาเดิมสร้าง VHDL) นั่นหมายความว่าคนที่อยู่ใกล้คุณอาจช่วยได้ในภาษาเดียวหรืออีกภาษาหนึ่งที่ดีกว่า แต่ถ้าคุณกำลังมองหาความช่วยเหลือออนไลน์สิ่งนั้นอาจไม่เกี่ยวข้อง

หนังสืออื่นที่ควรพิจารณาคือ การสร้างต้นแบบอย่างรวดเร็วของระบบดิจิตอล: SOPC Editionซึ่งหมายถึงแผงAltera DE1และ DE2 มีคอมพิวเตอร์หลายเครื่องที่เชื่อมต่อกับ DE1 และ DE2 อยู่แล้วเพื่อให้ความคิดแก่คุณว่าทำงานอย่างไร Minimigtg68 (Amiga), FpgaGen (Sega Genesis) ฯลฯ ถูกนำไปยังบอร์ดนี้เพื่อดูตัวอย่าง

ถ้าคุณไป Xilinx ตอนนี้ฉันมีหนังสือสองเล่ม FPGA Prototyping โดย Verilog ตัวอย่าง: Xilinx Spartan-3 Version FPGA Prototyping โดย VHDL ตัวอย่าง: Xilinx Spartan-3 เวอร์ชั่น แม้ว่าฉันจะไม่รู้จักบอร์ดใดที่จะแนะนำ ฉันตื่นเต้นเกี่ยวกับบอร์ดหวังว่าจะมาเร็ว ๆ นี้FPGA Arcadeแต่ฉันลืมว่ามันจะมี Xilinx หรืออย่างอื่น


0

พบตัวแปรนี้ที่พัฒนาต่อไป Logisim ตอนนี้เรียกว่าวิวัฒนาการ Logisim พวกเขาใช้คุณสมบัติเพื่อส่งออกไปยัง VHDL จากแผนงานของวงจรตรรกะที่สร้างขึ้นใน logisim

สามารถพบได้ที่นี่: https://github.com/reds-heig/logisim-evolution

รู้ว่าคำถามนี้เก่า แต่ก็ช่วยฉันได้มากและหวังว่ามันจะช่วยคนอื่นได้

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