Vhdl เคลื่อนไหว เฉลี่ย ตัวอย่างเช่น


ฉันพยายามเขียน VHDL เฉลี่ยเคลื่อนที่ถัวเฉลี่ยถ่วงน้ำหนักโมดูลที่ใช้ FSMD ata จากสิ่งที่ฉันเข้าใจรัฐต้องการจะเป็นสิ่งที่ต้องการดึง, แบ่ง, output ด้านล่างเป็นกระบวนการที่ฉันเขียน แต่ฉันรู้สึกเหมือนตรรกะของฉันเป็นบิตออก โปรดทราบว่าข้อมูลที่ฉันกำลังเฉลี่ยอยู่ที่อาร์เรย์คงที่ของตัวเลข 8 บิตดังนั้นฉันคิดว่ามันควรจะดีที่จะใช้ข้อมูลที่ไม่ก่อให้เกิดการออกแบบข้อมูลมี 64 รายการและในขณะที่หน้าต่างสำหรับค่าเฉลี่ยคือ 4 ปัญหานี้ดูไม่ถูกต้องปัญหาสองสามอย่างที่ฉันสามารถดูได้ทันทีคุณไม่ได้เริ่มต้น temp ใหม่ทุกครั้งคุณไม่ได้ตรวจสอบขีด จำกัด ใด ๆ สำหรับการนับว่าเป็น subtype หรือเพียงจำนวนเต็มตามธรรมชาติสิ่งที่เกิดขึ้นกับการนับรูปแบบ i เมื่อคุณ วิธีการที่คุณม้วน over. Your สำหรับวงของคุณคือ 0 เพื่อ len - คุณแน่ใจว่าคุณ didn t หมายถึง 0 เพื่อ len - 1.Since รัฐกระบวนการถอดรหัสทั้งหมดของคุณจะถูกโอเวอร์คล็อกคุณ don t จริงๆต้อง nstate ที่ทั้งหมดโปรดทราบว่า คุณไม่ได้เริ่มต้น cstate แต่คุณยังคงถอดรหัสมันไม่ว่าจะทำให้รัฐของคุณถอดรหัสแยกชุด กระบวนการ al หรือเพียงแค่กำจัดรัฐและกำหนดให้ cstate โดยตรงนอกจากนี้ยังขึ้นอยู่กับเป้าหมายการออกแบบของคุณหากคุณ don t ดูแลเกี่ยวกับ throughput แต่ต้องทำงานในอัตรานาฬิกาที่สูงมากคุณอาจต้องการดำเนินการเพิ่มเติมตามลำดับของคุณแทน แบบขนานเช่น. ตอบ 5 ก. ย. 14 ที่ 13 32. ขอบคุณที่แน่นอนจะทำให้สิ่งที่ดีกว่าเกี่ยวกับการนับแบบโรลโอเวอร์ฉันไม่แน่ใจว่าจะทำอย่างไรดีเพราะในแต่ละรูปแบบนับเป็น 63 ฉันต้องการแสดง ค่าและค่าเฉลี่ยของหน้าต่างรอบดังนั้นหาก rollover ฉันที่ coun-len ก็ shouldn t ไปนอกขอบเขต แต่จะไม่แสดงข้อมูลทั้งหมดถ้าฉันทำฉันจะมีความล่าช้าในการเริ่มต้นเป็นมัน สิ่งที่คล้ายกันฉันต้องการที่นี่ แต่ ณ สิ้น user1710566 Sep 5 14 ที่ 23 23.my แก้ปัญหาได้ elsif CLK event แล้วถ้านับ 64 แล้วนับ 0 อื่นคำนวณสิ้นถ้าในห่วงฉันใส่ออกถ้า count i เป็นมากกว่า 63 user1710566 Sep 6 14 at 0 05. ฉันมีคำถามเกี่ยวกับค่าเฉลี่ยเฉลี่ยต่อเนื่องของ ADCs v alue วิธีการที่ฉันใช้เป็นค่าเฉลี่ยอย่างต่อเนื่องของตัวอย่าง 256 ตัวอย่างค่า adcaout ที่แสดงในโค้ดด้านล่างที่ฉันได้รับในส่วนเพิ่ม GUI ของฉันอย่างช้าๆตัวอย่างเช่นถ้าฉันคาดหวังว่าจะมีค่า 100mA GUI ของฉันแสดง 4mA, 8mA, 15mA แล้ว สุดท้ายหลังจาก 2 นาทีฉันได้รับมูลค่า 100mA มั่นคงฉันต้องการดู 100mA โดยตรงใน GUI ของฉันจาก adcaout แทนค่าที่เพิ่มขึ้นและเสถียรภาพหลังจาก sometime คำถามก็คือว่าฉันสามารถอย่างใดทำให้กระบวนการนี้อย่างรวดเร็วเพื่อที่ฉัน don t ต้องรอ 3 นาฬิกาสำหรับรับสัญญาณ 100 mA จาก adcaout นาฬิกาในการออกแบบระบบดิจิตอลด้านล่างเป็น 20 MHz นาฬิกาสำหรับรับค่า ADC บนบอร์ด FPGA คือ 15 KHz - ไฟล์อยู่ด้านล่างรหัสของคุณมีการแก้ไขดังนี้ output ที่ฉันดูใน GUI ของฉันคือ slvvalue1 และ slvvalue2. วิธีการนี้เมื่อรีเซ็ตหรือเวลาอื่น ๆ ถ้าคุณต้องการกำหนดค่า datain ให้กับองค์ประกอบทั้งหมดในอาร์เรย์ stage คุณควรตั้งค่าเฉลี่ยของคุณเป็นค่าปัจจุบัน ตัวอย่างด้านล่างแสดงให้เห็น t คำแนะนำของฉันคือการที่คุณศึกษาจนกว่าคุณจะเข้าใจแล้วลองใช้ในการออกแบบของคุณสุดท้ายและเฉพาะหลังจากที่คุณมีการทำงานวงจรขั้นพื้นฐานคุณสามารถเปลี่ยนเพื่อตอบสนองข้อ จำกัด ของข้อมูลการออกแบบของคุณ ความกว้างจำนวนตัวอย่างช่วงของจำนวนเต็มการใช้ตัวเลขที่ลงนามและจำนวนเต็มเป็นต้นหากคุณต้องการใช้รหัสข้างต้นเพื่อให้ทั้งสองค่าเฉลี่ยแยกกันสำหรับสองสัญญาณที่แตกต่างกันเพียงแค่สร้างอินเทอร์เฟซเฉลี่ยสองครั้งแก้ไขเป็นฉันเข้าใจจาก คุณอาจต้องป้อนข้อมูลเพิ่มเติมเพื่อตั้งค่าเฉลี่ยทันทีที่ค่าอินพุตปัจจุบันในกรณีนี้คุณสามารถใช้อินพุตโหลดตามที่แสดงด้านล่างได้ 26 พ. ย. 52 ที่ 15 45.VGA การเชื่อมต่อและควบคุมโดยใช้ MENTOR GRAPHICS ซอฟต์แวร์ HDL DESIGNER และคณะกรรมการพัฒนา Altera DE1 ดูหน้า DE1 DEB ของฉันที่ลิงค์ด้านล่างซอฟต์แวร์ที่ใช้ในบทแนะนำนี้เรียกว่า HDL Designer โดย Mentor Graphics พร้อมกับโปรแกรม Companion ต่างๆเช่น. ModelSimและ Precision Synthesis. Just เพื่อแจ้งให้คุณทราบก่อนที่เราจะไปเพิ่มเติมใด ๆ ฉัน จะไม่ให้ออกไฟล์ VHDL เต็มรูปแบบรหัสสำหรับ download. If คุณใหม่เพื่อการเขียนโปรแกรม VHDL ผมขอแนะนำให้คุณตรวจสอบหน้า VHDL ของฉันเป็น Introduction. However ถ้าคุณมีอยู่แล้วการเขียนโปรแกรมและเข้าใจ VHDL ในระดับหนึ่งแล้วคุณสามารถ ข้ามไปที่บทนำและดำเนินการต่อไป - Companion Textbook สำหรับโครงการนี้ขอแนะนำ Textbook สำหรับโครงการนี้เป็นหนึ่งในหนังสือสองเล่มที่แสดงด้านล่างนี้ PROTOTYPING ของ DIGITAL SYSTEMS โดยเฉพาะหนังสือเล่มนี้มีข้อมูลดีๆเกี่ยวกับ VGA interfacing และมีให้ บางส่วนของรหัส VHDL Basic สำหรับการสร้างคอนโทรลเลอร์ VGA ขอแนะนำให้คุณซื้อหนังสือเหล่านี้เพื่อช่วยในการทำให้ความเข้าใจของคุณแข็งขึ้นบทแนะนำนี้จะแสดงวิธีการตั้งโปรแกรม Altera DE1 D evelopment Board เพื่อผลิตคอนโทรลเลอร์ VGA และสัญญาณข้อมูลที่จำเป็นสำหรับการแสดงผลกราฟิกสี 2D บนจอภาพ VGA Computer Monitor ซึ่งจะช่วยให้คุณสามารถผลิตเกมแนว 2D PONG แบบเดิม ๆ ได้หลายเกมสไตล์ VHDL PONG ได้รับการแสดงออนไลน์เช่น ด้านล่างนี้คล้ายกับสิ่งที่โครงการสุดท้ายของคุณจะมีลักษณะเช่นนี้เมื่อเสร็จสิ้นอย่างไรก็ตามคุณมีอิสระที่จะเพิ่มคุณสมบัติอื่น ๆ ในเกมหากคุณมีเวลาที่จะทำเช่นนั้นก่อนสิ้นเทอมของคุณคุณสมบัติเพิ่มเติมสามารถเพิ่มลงในเกมของคุณได้ สำหรับผู้ที่ต้องการจะไปไกลกว่าโครงร่างของ Tutorial นี้เช่น Score Board, Time Limit, Sound Effects หรือแม้กระทั่ง Joystick Game pad Control Interface สำหรับผู้เล่นสองคนสิ่งนี้ได้รับการสนับสนุนอย่างแน่นอนเพราะจะช่วยให้เข้าใจถึงความ รหัส VHDL บทแนะนำนี้ใช้ความละเอียดหน้าจอ 640 x 480 พร้อมอัตรารีเฟรชหน้าจอ 60Hz หากคุณต้องการออกทั้งหมดและพยายามใช้การตั้งค่าความละเอียดสูงเช่น 800 x 600, 1024 x 768 หรือแม้แต่ 1600 x 1200 แล้วโดยวิธีการทั้งหมดทำคุณแน่นอนจะขึ้นสำหรับคะแนนโบนัสที่สำคัญบางอย่างถ้าคุณสามารถได้รับมันไปทำงานโปรดไปที่ลิงค์ด้านล่างสำหรับรายการของความต้องการระยะเวลาต่างๆ VGA สัญญาณสำหรับการตั้งค่าความละเอียดที่แตกต่างกัน Tutorial นี้สามารถนำมาใช้ บอร์ดพัฒนาอื่น ๆ และซอฟต์แวร์ VHDL อื่น ๆ เช่น Boiler Altera, Altera UP1, UP2, CPLDT-2 และอื่น ๆ อีกมากมายคุณยังสามารถใช้ Universal Programmer เพื่อเขียนโปรแกรม CPLD หรือ FPGA ของคุณเองได้นอกจากนี้ยังมีตัวเลือกในการใช้ JTAG interface โปรแกรมเมอร์และการเดินสายไฟตัวเองเข้ากับ FPGA ที่รองรับ JTAG นี้ช่วยให้คุณสามารถใช้โปรแกรมเมอร์ JTAG 1500 เช่น Altera USB-BLASTER เพื่อเขียนโปรแกรม CPLD หรือ FPGA ของคุณเองได้ตราบเท่าที่ FPGA ที่คุณซื้อสนับสนุน JTAG จากนั้นคุณสามารถเชื่อมต่อได้ด้วยตัวคุณเองและเพียงแค่ใช้โปรแกรมกับ Logic Software เดียวกับที่คุณใช้กับบอร์ดพัฒนา DE1 ของคุณสำหรับคำอธิบายโดยละเอียดเกี่ยวกับอินเทอร์เฟซ JTAG โปรดดูที่หน้าเชื่อมต่อ JTAG และวิดีโอการเรียนการสอนที่ Link B elow. I ได้จัดทำชุดวิดีโอแนะนำสำหรับโครงการนี้เพื่อการตรวจทานของคุณวิดีโอจะครอบคลุมแนวคิดที่จำเป็นสำหรับคุณเพื่อรวม 10 VHDL BLOCKs แยกต่างหากใน HDL Designer เพื่อผลิต PONG Style Game Video บน Altera DE1 Development Board คุณจะ เชื่อมต่อ DE1 ของคุณเข้ากับจอแสดงผล VGA โดยใช้พอร์ต VGA DB on-onboard ตอนนี้เนื่องจากเป็นโครงการ TERM ที่ได้รับความนิยมสำหรับหลายวิทยาลัยและมหาวิทยาลัยฉันจะไม่ให้ไฟล์รหัสแหล่งที่มา VHDL เพื่อให้คุณสามารถดาวน์โหลดคัดลอกและวางลงใน โครงการแล้วส่งให้อาจารย์ของคุณและได้รับการนั่งฟรีสำหรับโครงการนี้ฉันจะมีวิดีโอการเรียนการสอนต่างๆที่จะไปกว่าแนวคิดพื้นฐานของโครงการและฉันยังจะมีบางส่วนของสถาปัตยกรรมทั่วไป VHDL และตัวอย่างกระบวนการสำหรับแต่ละ 10 บล็อก VHDL มันจะขึ้นอยู่กับคุณเพื่อใช้รหัสตัวอย่างกับโครงการของคุณเองฉันเชื่อว่าเป็นสิ่งสำคัญที่คุณเขียนออกรหัสของคุณเองให้ใช้การจำลองและดูว่าสิ่งที่ทำงานผ่านการทดลองและ Error. Just Remember Yo u สามารถทำ this. Try เขียนออกรหัส VHDL บางตัวเองเรียกใช้การจำลอง MultiSim และคุณจะเห็นว่าคุณสามารถเรียนรู้ได้อย่างรวดเร็วดังนั้นอีกครั้งฉันจะไม่ให้ออก VHDL ไฟล์รหัสต้นฉบับสำหรับ download. If คุณใช้เว็บไซด์นี้และฉัน วีดีโอการเรียนการสอนเป็นคำแนะนำคุณจะทำอะไรได้บ้างคุณสามารถทำเช่นนี้ได้ตอนนี้ถ้าผมตอบ 100 วินาทีของอีเมลที่คุณส่งมาทั้งหมดขอความช่วยเหลือจากรหัส VHDL ของคุณฉันจะไม่สามารถ เพื่อหาเวลาในการทำงานหรือแม้กระทั่งการกินดังนั้นโปรดลงทะเบียนและถามคำถาม VHDL ทั้งหมดของคุณเกี่ยวกับฟอรั่ม CPLD FPGA Digital Design หากคุณต้องการความช่วยเหลือเกี่ยวกับรหัส VHDL หรือโครงการที่เกี่ยวข้องกับวิศวกรรมอื่น ๆ ฟอรัมเป็นสถานที่ที่จะไป คุณสามารถพูดคุยกับผู้เชี่ยวชาญด้านอื่น ๆ ในอุตสาหกรรมเพื่อช่วยแก้ปัญหาและแก้ไขปัญหาการเข้ารหัส VHDL ของคุณฟอรัม GUI บนเว็บของฟอรัมได้รับการติดตั้งทั้งฟอรัม CODE และ COMMENT ซึ่งทำให้ข้อความของคุณมีความชัดเจนและมีระเบียบ ช่วยให้ผู้อื่นช่วยเหลือคุณได้มากขึ้น ciently และในเวลาที่เหมาะสมดังนั้นนี่คือทรัพยากร Fantastic และฉันขอแนะนำให้คุณเข้าร่วม VGA Interface. The VGA เป็นมาตรฐานโดย IBM ในปี 1987 กับความต้องการสัญญาณเพื่อแสดงภาพสีบน Cathode Ray Tube Monitor คอมพิวเตอร์หรือ CRT สำหรับ สั้นเมื่อจอ LCD ถูกปล่อยออกมาในภายหลังพวกเขานำมาตรฐานเดียวกันสัญญาณ VGA เพื่อทำงานกับโครงสร้างพื้นฐานคอมพิวเตอร์ในปัจจุบันออกในโลก CRT - Cathode Ray Tube. CRT LCD Differences. CRT LCD - Cutaway Diagram. Therefore จอแอลซีดีมี วงจรแปลภาษาภายในที่แปลงสัญญาณ VGA ให้เป็นสัญญาณควบคุม Liquid Crystal Display สัญญาณทั้งหมดนี้เกิดขึ้นโดยอัตโนมัติภายในวงจรจอแอลซีดีมอนิเตอร์และทำงานได้เหมือนกันกับเราดังนั้นเราจึงไม่ต้องกังวลกับเรื่องนี้อีกครั้งเราดีไปกว่า VGA อินเทอร์เฟซ - ความต้องการสัญญาณโดยปกติแล้วจะมีความต้องการสัญญาณแยกต่างหาก 5 ส่วนสำหรับอินเทอร์เฟซ VGA ในการทำงานเหล่านี้คือสัญญาณควบคุมความละเอียด H-SYNC V-SYNC และสีแดงสีเขียวและสีน้ำเงิน H-SYNC V-SYNC สัญญาณที่คุณส่งไปยังจอภาพให้กำหนดการตั้งค่าความละเอียดที่คุณต้องการใช้ทั้งนี้ขึ้นอยู่กับจอภาพ แต่อาจรองรับความละเอียดเฉพาะที่จอภาพอื่น ๆ อาจสนับสนุนร้านค้า Monitor ได้มากกว่าหนึ่งร้าน สัญญาณอ้างอิงรูปแบบสำหรับการตั้งค่าความละเอียดทั้งหมดที่มีอยู่ภายในชิปหน่วยความจำ EEPROM ซึ่งเป็นส่วนหนึ่งของวงจรภายในของจอภาพการตั้งค่าความละเอียดแต่ละอย่างต้องใช้ความละเอียดของ H-SYNC V-SYNC ความกว้างของพัลส์และ Duty Cycle ความต้องการสัญญาณเหล่านี้ โดย IBM เราจะใช้ขนาดความละเอียดหน้าจอที่เก่าแก่ที่สุดและเล็กที่สุดเท่าที่ส่วนใหญ่จะสนับสนุนจอภาพ VGA นั่นคือความละเอียด VGA 640 x 480 และอัตราการรีเฟรช 60Hz เส้นควบคุมสี RED, GREEN และ BLUE ใช้แต่ละครั้ง ระดับแรงดันไฟฟ้าแบบอนาล็อกระหว่าง 0 ถึง 0 7 โวลต์ DC เพื่อกำหนดปริมาณความเข้มของสีที่ใช้สำหรับพิกเซลแต่ละสีเท่าที่ทราบสีทั้งหมดจะทำขึ้นจากการผสมผสานของ RED, GREEN และ BLUE จำนวนมาก ร่วมกันสัญญาณ SYNT SYNC V-SYNC ลองดูสัญญาณ H-SYNC และ V-SYNC เช่น COUNTERS ที่กำหนดเองซึ่งทำงานอยู่อย่างต่อเนื่องและนับมูลค่าสูงสุด MAXIMUM โดยรีเซ็ตเป็นศูนย์แล้วนับอีกครั้งทุกครั้ง ตัวนับของ H-SYNC จะรีเซ็ตเป็นศูนย์และตัวนับ V-SYNC จะเพิ่มขึ้นทีละ 1 ภาพ GIF ภาพเคลื่อนไหวที่แสดงด้านล่างแสดงให้เห็นว่าสัญญาณ H-SYNC V-SYNC ใช้ร่วมกันเพื่อสร้างเฟรมการรีเฟรชหน้าจอเมื่อคุณดูข้อมูลเหล่านี้ สัญญาณเช่นเคาน์เตอร์ XY พวกเขาเป็นหลักนับผ่านแต่ละพิกเซลบนหน้าจอจากมุมบนซ้ายตลอดจนลงไปตามลำดับล่างมุมขวากระบวนการนี้ทำซ้ำ 60 ครั้งต่อวินาทีเนื่องจากเราใช้อัตรารีเฟรช 60Hz รูปแบบสัญญาณ H-SYNC และ V-SYNC ที่เราส่งไปยังจอภาพ VGA เมื่อทำงานร่วมกันจะสร้างผลการสแกนแบบ Zig-Zag ตามที่แสดงด้านล่างตอนนี้ขึ้นอยู่กับ Frequency, Pulse Width และ Duty Cycle ของรูปแบบสัญญาณเหล่านี้ เราสามารถสร้าง setti ความละเอียดที่แตกต่างกันได้ ng สำหรับจอแสดงผลดังนั้นเราจึงมีรูปแบบสัญญาณ H-SYNC และ V-SYNC เฉพาะเพื่อสร้างวงจรการสแกน Zig-Zag ของความละเอียดหน้าจอ 640 X 480 และเรามีสัญญาณ H-SYNC และ V-SYNC อีกอันหนึ่ง รูปแบบสำหรับความละเอียดหน้าจอ 1600 X 1200 และภาพอื่น ๆ อีกมากมายภาพด้านบนแสดงให้เห็นถึงสิ่งที่เรียกว่าเฟรม Interlaced คุณไม่จำเป็นต้องกังวลเรื่องนี้ในขณะนี้เนื่องจากเราไม่ได้ใช้รูปแบบเฉพาะนี้ภาพเคลื่อนไหวส่วนใหญ่เป็น ใช้เพื่อแสดงแนวคิดพื้นฐานของการรีเฟรชหน้าจอขณะนี้เราใช้การตั้งค่าความละเอียด 640 x 480 ซึ่งหมายความว่าเรามีพิกเซล 640 พิกเซลที่ทำงานจากด้านซ้ายของหน้าจอไปทางด้านขวา เรามี 480 พิกเซลที่ทำงานจากด้านบนของหน้าจอไปที่ด้านล่างในคำอื่น ๆ สิ่งที่เรามีที่นี่คือ 640 x 480 พิกเซลเมทริกซ์คุณสามารถพิจารณามุมบนซ้ายของหน้าจอเป็นจุดเริ่มต้นสำหรับ H - เคาน์เตอร์ SYNC และ V-SYNC เริ่มต้นที่ Zero The H-SYNC Counter จากนั้นดำเนินการต่อ เพื่อเพิ่มขึ้นผ่าน 640 พิกเซลในแถวแนวนอนแรกจากซ้ายไปขวาเมื่อถึงปลายแถวแล้วรีเซ็ตไปยังจุดเริ่มต้น แต่คราวนี้ยังเลื่อนลงไปหนึ่งพิกเซลไปยังแถวถัดไปและเพิ่ม V - SYNC counter โดย 1. กระบวนการนี้จะทำซ้ำจนกว่าหมายเลข V-SYNC จะนับเป็น 479 ซึ่งจะนำไปยังแถวสุดท้ายที่ด้านล่างของหน้าจอจากนั้นเมื่อตัวนับ H-SYNC ถึงพิกเซลสุดท้ายที่มุมล่างขวาของ หน้าจอ 639 ทั้งตัวนับ H-SYNC และ V-SYNC จะถูกรีเซ็ตเป็นศูนย์ซึ่งจะนำเรากลับไปที่พิกเซลมุมซ้ายด้านบนและกระบวนการนับรวมทั้งหมดเริ่มต้นใหม่อีกครั้งหนึ่งครั้งเดียวผ่านหน้าจอทั้งหมดเรียกว่าหน้าจอ รีเฟรชวัฏจักรและนี่คือการทำซ้ำ 60 ครั้งต่อวินาทีเพื่อรีเฟรชหน้าจอและปรับปรุงแต่ละพิกเซลสำหรับสีเฉพาะและในทางกลับกันภาพนี้จะสร้างภาพบนหน้าจอตรวจดูภาพเคลื่อนไหว GIF ด้านบนเพื่อทำความเข้าใจเกี่ยวกับกระบวนการรีเฟรชหน้าจอนี้ ในการดำเนินการ - ภาพรวมของ 10 Block ของเรา VHDL วงจร -. VHDL BLOCKS - ตัวอย่างสถาปัตยกรรมต่อไปนี้ฉันได้ให้บาง VHDL สถาปัตยกรรมและกระบวนการตัวอย่างที่คล้ายกับสิ่งที่คุณจะต้องสำหรับแต่ละบล็อก 10 VHDL เพื่อดำเนินการฟังก์ชันเฉพาะของพวกเขาขึ้นอยู่กับคุณที่จะคิดออกว่าจะใช้ รหัสโครงการของคุณเองและสร้างสัญญาณที่คุณต้อง VHDL BLOCK 1 - Divider นาฬิกาแบ่งนาฬิกาควรจะ snap สำหรับคุณที่จะคิดออกจึงไม่จำเป็นจริงสำหรับตัวอย่างสำหรับโครงการ VGA ของเราเราต้องมีสัญญาณนาฬิกา ของ 25 175 MHz 25 MHz ในกรณีของเราได้ดีเราทำได้โดยการแบ่งสัญญาณนาฬิกา DEM 50Mhz ของ DE1 เป็นครึ่งหนึ่งสำหรับการจำลองแบบ MultiSim สำหรับการตั้งค่านาฬิกา 50MHz ใช้นาฬิกาเป็นระยะเวลา 20ns สำหรับการตั้งค่านาฬิกา 25MHz ใช้ Clock Period ของ 40ns. VHDL BLOCK 2 3 - ตัวอย่างทั่วไปของ MOD Counter ตัวนับ MOD25 ของฉันพร้อมกับรีเซ็ตสายไฟและนาฬิกา 25Mhz ตัวอย่างตัวนับ MOD MODE หากคุณกำลังประสบปัญหาในการให้ Pulses คอนโทรลเลอร์ VGA ทำงานได้อย่างถูกต้องให้ลองเปลี่ยนสถานะการรีเซ็ตสถานะของเคาน์เตอร์ MOD ลองค่าตัวนับเหล่านี้ด้านล่างและ เรียกใช้การจำลองบางส่วน MOD-800 นับจาก 0 ถึง 793.MOD-525 นับจาก 0 ถึง 522.VHDL BLOCK 4 5 - เครื่องตั้งเครื่องแนวตั้งแนวนอนแบบถอดรหัส PULSES MOMENTARY สำหรับ OUTPUT LINES โปรดทราบว่าเครื่อง VHDL State เฉพาะนี้จะสร้าง Momuls Logic High Pulses เฉพาะเมื่อเอาท์พุทของคุณเอาท์พุท STATE lines จะยังคงอยู่ในระดับสูงสำหรับ Clock Pulse เพียง 1 นาฬิกาโดยอิงตามแหล่ง CLK ของอินพุตที่ใช้สำหรับ VHDL Block นี้ stateoutputs จำเป็นต้องป้อนลงในวงจร Latch ซึ่งจะจัดขึ้นเป็นระยะเวลานานตัวอย่าง Single State Machine ข้างต้นเป็นตัวอย่างของสถานะ State Counter ที่ต่างกันในหน้าจอ Capture ที่แสดงด้านบนให้ความสนใจกับความแตกต่างของเวลาระหว่าง Markers. and สองวิธีที่เกี่ยวข้องกับประเทศอื่น ๆ ที่แสดงผลสัญญาณ SYNC DISPLAYTIME แบบแนวนอนในแนวนอน เครื่องประมวลผลแบบวงแหวนด้านซ้ายเป็นสัญญาณแสดงด้านล่างนี้ - สัญญาณ SYNC แบบแนวนอนในแนวนอนในแผนภาพ SIGNAL TIMING ที่ทำตามจะแสดงแนวนอนแนวตั้ง SYNC Pulses และแนวตั้งและแนวตั้ง DISLAYTIME Pulses รูปแบบสัญญาณเหล่านี้เกิดขึ้นในลำดับซ้ำ ๆ และฉันได้ระบุไว้ จุดเริ่มต้นและจุดหยุดของรูปแบบการทำซ้ำนี้ฉันได้รวม H-DECODER และ V-DECODER Momentaty HIGH PULSE States ด้วยความสัมพันธ์กับรูปแบบของรูปคลื่นในคำถาม - Horizontal DISPLAYTIME สัญญาณ Waveforms. - แนวตั้ง SYNC สัญญาณ Waveforms.- แนวตั้ง สัญญาณคลื่นสัญญาณ DISPLAYTIME LATCH CIRCUIT STATE MACHINES รหัส VHDL ด้านล่างเป็นตัวอย่างของวงจร Latch ที่จะเปิดใช้งานสัญญาณเอาท์พุทเพื่อให้อยู่ในระดับสูงหรือต่ำสำหรับระยะเวลาใด ๆ จนกว่าจะมีการระบุเอาต์พุตที่ต้องการเพื่อเปลี่ยนสถานะ LATCH RESET ใช้พัลส์อินพุท เพื่อเป็น Triggers เพื่อเริ่มต้นการเปลี่ยนแปลงใด ๆ นี้เป็นหลักประเภทของวงจรที่คุณต้องใช้สำหรับแต่ละสัญญาณดังที่แสดงในแผนผัง Waveform แสดงภาพวัตถุบน Screen. Now สิ่งที่ได้รับน้อยซับซ้อนที่นี่ฉันจะมี ตัวอย่างสองขั้นตอนการแสดงผลเพื่อเป็นแนวทางให้คุณทำตามขั้นตอนอย่างไรก็ตามคุณจะต้องทราบวิธีเพิ่มการควบคุมการเคลื่อนไหวกับออบเจกต์ของคุณวิธีที่ดีที่สุดในการทำความเข้าใจว่าวัตถุสีพื้นฐานที่ปรากฏบนหน้าจอมีดังต่อไปนี้อย่างไร ลองดูที่เคาน์เตอร์ Horz และ Vert MOD มากขึ้นเช่นระบบพิกัด 2D XY บน Map. So แสดง Horz และ Vert MOD ของเราเช่น XY พิกัดตำแหน่งสำหรับ Flashlight ที่กำลังสแกนหน้าจอ Fla นี้ shlight กำลังตรวจสอบป้ายกำกับในทุกพิกเซลที่มีอยู่ฉลากระบุว่าสีใดที่ Pixel ควรแสดงเป็นสีแดงเขียวและน้ำเงินหรือชุดค่าผสมใด ๆ ทั้งสามแบบวิธีที่เราทำใน VHDL คือการใช้ชุดตัวตรวจจับหรือตัวนับเพิ่มเติม เช่นเดียวกับที่ใช้ในการสร้างสัญญาณ H-SYNC และ V-SYNC Counter คู่กลายเป็น XY Reference พิกัดสำหรับแต่ละวัตถุที่เราแสดงบนหน้าจอซึ่งหมายความว่าเราจะต้องคู่ XY Counter สำหรับแต่ละวัตถุที่เราแยกต่างหาก มีอยู่ใน Screen. So เนื่องจากตัวนับ Horz และ Vert MOD ของเรากำลังทำงานผ่านรอบการรีเฟรชของหน้าจอหากจุดใด ๆ เกิดขึ้นเคาน์เตอร์จะมีพิกัด X และ Y เหมือนกันเป็นหนึ่งในคู่การนับใหม่ของ XY YREFERENCECOUNTER V-COUNTER และ XREFERENCECOUNTER H-COUNTER แล้วเราสามารถใช้เงื่อนไขนี้เพื่อเปิดใช้งานบรรทัด RGB เพื่อเริ่มแสดงสีเฉพาะที่ฉันเล่นซ้ำจากพิกัด XY เหล่านี้ซึ่งหมายความว่าคุณต้องเพิ่มจำนวนพิกเซล XY สำหรับวัตถุที่ คุณต้องการแสดงต่อคำชี้แจงที่แสดงไว้ด้านบนเนื่องจากคุณได้บอกเฉพาะระบบที่จะเริ่มวาดภาพสี แต่ไม่จริงวิธีที่จะไปขึ้นซ้ายขวาซ้ายหรือแม้แต่สถานที่ที่จะหยุด YREFERENCEROUNTER V-COUNTER และ XREFERENCECOUNTER H-COUNTER ขนาดยังคงมีน้อยไปกว่านี้ดังนั้นโปรดตรวจสอบตัวอย่างของกระบวนการ DISPLAY ที่ฉันได้ระบุไว้ด้านล่างและดูว่าคุณสามารถคิดออกได้หรือไม่ดูตัวอย่างกระบวนการ BALL - VHDL Block 7.PADDLE 1 แสดงตัวอย่าง PROCESS - VHDL Block 8 9. ยังตรวจสอบหน้า 208 และ 209 จากหนังสือเรียนเสริมที่ฉันกล่าวไว้ก่อนหน้านี้ต่อไปนี้เป็นตัวอย่าง 2 ขั้นตอนที่อาจให้คำแนะนำบางอย่างเพื่อให้ได้ Ball ขึ้นบนหน้าจอดูตัวอย่างสองตัวอย่างลอง รหัสจัดการกับมันเปลี่ยนรอบกับความคิดของคุณเองลองสิ่งที่แตกต่างกันและดูว่าคุณจะได้รับลูกเพื่อแสดงและเด้งใน Screen. Now เพื่อให้ได้ Ball Collisions ทำงานกับ Paddles นี้อาจพิสูจน์ให้เป็นความท้าทายมากขึ้น หวังว่าตัวอย่างกระบวนการเหล่านี้จะช่วยให้คุณเริ่มต้นและคิดถึงวิธีที่ดีกว่าในการเขียนรหัส VHDL ของคุณเอง วิดีโอส่วนที่ 4 - จะแสดงข้อมูลหมายเหตุเชิงลึกเกี่ยวกับการชนกันของลูกปืนรายละเอียดด้านล่างเกี่ยวกับการพายเรืออาจมีการ overkill บิตสำหรับส่วนมากของคุณอย่างไรก็ตามถ้าคุณเป็น perfectionists และกำลังได้รับความผิดหวังมากเนื่องจากลูกบอล collisions กับ paddles ของคุณไม่ได้ พฤติกรรมที่คุณต้องการให้คุณอาจต้องการอ่านรายละเอียดที่แสดงไว้ด้านล่างนี้เป็นสิ่งสำคัญที่ต้องตระหนักว่าไม่ว่าทิศทางที่ลูกบอลจะเดินทางขึ้นลงหรือบนมุมเงื่อนไขที่คุณใช้กับพายแต่ละลูก การชนกันของแต่ละสภาวะจะทำให้เกิดการตอบสนองเช่นเดียวกันโดยไม่คำนึงถึงด้านใดด้านหนึ่ง Ball ชนบน Paddle นี่เป็นเพราะเป็นวัตถุเดี่ยวเงื่อนไขการชนกันของไม้พายแต่ละตัวจะขึ้นอยู่กับคู่ XY counter ของตนเพื่อให้มีการตอบสนองที่แตกต่างกันสำหรับแต่ละ 4 sides. you จำเป็นต้องใช้ 4 คู่ Counter counter หรือ 4 ด้านแยกกันที่สร้างขึ้นหนึ่ง paddle. RGB Concatenation Display Block. This Block เป็นเพียงกลุ่มของ AND ที่เข้าร่วมหรือ CONCATENATE o ทั้งหมด f สี RGB เข้าด้วยกันเป็นเอาท์พุท MASTER RGB ดังนั้นคุณจึงมี Multi-Input AND gate สำหรับแต่ละสี RGB หนึ่งสำหรับสี RED ทั้งหมดหนึ่งสีสำหรับ GREEN ทั้งหมดและอีกสีหนึ่งสำหรับ BLUE ทั้งหมด สุดท้ายนี้เอาต์พุต MASTER RGB สามารถใช้งานได้เฉพาะในระหว่างเวลาการแสดงผลแบบแนวตั้งและเวลาในการแสดงผลในแนวตั้งดังนั้นจะมีการเปิดใช้งานอีกประตูหนึ่งและเปิดใช้งานเอาต์พุต MASTER RGB เฉพาะเมื่อ H-DISPAYTIME V-DISPLAYTIME อยู่ในสภาวะลอจิคิกสูง Altera DE1 Board - สาย RGB ที่ไม่ได้ใช้จะต้องเชื่อมโยงกับ GND สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าคุณผูกสายสัญญาณ RGB ที่ไม่ได้ใช้เป็น GND เพราะบางครั้งอาจทำให้สัญญาณที่ไม่เชื่อมต่อเป็น Float ทำให้สัญญาณรบกวนและสัญญาณรบกวนบนจอภาพ VGA ของคุณทำได้ดี ขึ้น Folks. Hopefully Tutorial นี้อย่างน้อยจะได้รับคุณเล็ก ๆ น้อย ๆ ที่ใกล้ชิดกับการจบโครงการ VHDL PONG ของคุณ

Comments

Popular posts from this blog

Binary ตัวเลือก Us ประชาชน

Set Up Forex ซื้อขาย บริษัท

Forex ใน นิวเดลี สนามบิน