สารบัญ:

VHDL นาฬิกาจับเวลา: 8 ขั้นตอน (พร้อมรูปภาพ)
VHDL นาฬิกาจับเวลา: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: VHDL นาฬิกาจับเวลา: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: VHDL นาฬิกาจับเวลา: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ปฏิบัติการเขียนโปรแกรม VHDL ปรับสัญญาณนาฬิกา ด้วยวงจรหารความถี่(นายพุทธพงษ์ ด่านทองหลาง 2024, พฤศจิกายน
Anonim
VHDL นาฬิกาจับเวลา
VHDL นาฬิกาจับเวลา

นี่คือบทช่วยสอนเกี่ยวกับวิธีการสร้างนาฬิกาจับเวลาโดยใช้ VHDL และแผงวงจร FPGA เช่น บอร์ด Basy3 Atrix-7 นาฬิกาจับเวลาสามารถนับได้ตั้งแต่ 00.00 วินาที ถึง 99.99 วินาที มันใช้สองปุ่ม ปุ่มหนึ่งสำหรับปุ่มเริ่ม/หยุด และอีกปุ่มสำหรับปุ่มรีเซ็ต ตัวเลขจะแสดงบนจอแสดงผลเจ็ดส่วนของบอร์ดโดยใช้แอโนดและแคโทด จำเป็นต้องใช้ไฟล์ที่แตกต่างกันสามไฟล์เพื่อให้นาฬิกาจับเวลานี้ทำงาน

ขั้นตอนที่ 1: ฮาร์ดแวร์/ซอฟต์แวร์

  • บอร์ด Basy3 Atrix-7 FPGA
  • Vivado Design Suite จาก Xilinx
  • USB 2.0 A ชายกับ Micro-B Male

ขั้นตอนที่ 2: บล็อกไดอะแกรม

บล็อกไดอะแกรม
บล็อกไดอะแกรม

นาฬิกาจับเวลาโดยรวมมีสามอินพุตและสองเอาต์พุต อินพุตสามช่อง ได้แก่ เริ่ม/หยุด รีเซ็ต และนาฬิกา ปุ่มเริ่ม/หยุดและรีเซ็ตเป็นปุ่ม และนาฬิกาคือนาฬิกา 100MHz ของบอร์ด เอาต์พุตทั้งสองคือแอโนดและแคโทดสำหรับจอแสดงผลเจ็ดส่วน

โมดูลแรก (ตัวแบ่งนาฬิกา) มีหนึ่งอินพุตและเอาต์พุตสองช่อง อินพุตคือนาฬิกา 100MHz ของบอร์ดและเอาต์พุตเป็นนาฬิกาแยก 2 ตัว อันหนึ่งทำงานที่ 480Hz และอีกอันทำงาน 0.5MHz

โมดูลที่สอง (จอแสดงผล) มีห้าอินพุตและสองเอาต์พุต อินพุตคือนาฬิกา 100MHz ของบอร์ด นาฬิกาสองตัวจากโมดูลตัวแบ่งนาฬิกา และปุ่มเริ่ม/หยุดและรีเซ็ต เอาต์พุตคือแอโนดและแคโทด

โมดูลสุดท้าย (สร้างแบบจำลองโดยบล็อกไดอะแกรมทั้งหมด) มีสามอินพุตและสองเอาต์พุต นี่คือไฟล์ที่รวบรวมทุกอย่างไว้ด้วยกัน อินพุตคือ 100MHz ของบอร์ดและปุ่มเริ่ม/หยุดและรีเซ็ต เอาต์พุตคือแอโนดและแคโทดที่ควบคุมการแสดงผลเจ็ดส่วน อินพุตและเอาต์พุตทั้งหมดอยู่บนบอร์ดสำหรับโมดูลสุดท้าย

ขั้นตอนที่ 3: ไดอะแกรมสถานะ

แผนภาพสถานะ
แผนภาพสถานะ

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

หากนาฬิกาจับเวลากำลังนับและปุ่มเริ่ม/หยุดไปที่ "สูง" จะหยุดนับ หากนาฬิกาจับเวลาหยุดเดินและปุ่มเริ่ม/หยุดขึ้น "สูง" ระบบจะเริ่มนับใหม่อีกครั้ง สำหรับทั้งสองสถานะ หากปุ่มเริ่ม/หยุดเป็น "ต่ำ" ปุ่มจะอยู่ในสถานะที่เป็นอยู่ในปัจจุบัน

ขั้นตอนที่ 4: โมดูลตัวแบ่งนาฬิกา

โมดูลตัวแบ่งนาฬิกามีหนึ่งอินพุต นาฬิกา 100MHz ของบอร์ด และสองเอาต์พุต นาฬิกา 480Hz และ 0.5MHz นาฬิกา 480Hz ใช้เพื่อให้ LED ทั้งหมดบนจอแสดงผลเจ็ดส่วน "เปิด" พร้อมกันโดยสลับผ่านสี่ส่วนอย่างรวดเร็ว นาฬิกา 0.5MHz ใช้สำหรับนาฬิกาจับเวลาเพื่อนับหน่วยเป็นเซนติเมตร

ขั้นตอนที่ 5: โมดูลแสดงผล

โมดูลแสดงผลนี้มีห้าอินพุต นาฬิกา 100MHz ของบอร์ด นาฬิกาสองตัวจากโมดูลนาฬิกา และปุ่มเริ่มต้น/หยุดและรีเซ็ต และเอาต์พุตสองช่อง ได้แก่ แอโนดและแคโทด โมดูลนี้ยังมี "ตรรกะ" สำหรับการนับนาฬิกาจับเวลาและรวมเอาเครื่องสถานะจำกัด

ขั้นตอนที่ 6: การผูกโมดูล

โมดูลสุดท้ายนี้เป็นโมดูลที่รวมอีกสองโมดูลเข้าด้วยกัน มีอินพุตสามตัว นาฬิกา 100MHz ของบอร์ดและปุ่มเริ่ม/หยุดและรีเซ็ต และเอาต์พุตสองช่อง ได้แก่ แอโนดและแคโทด นาฬิกา 100MHz ไปที่โมดูลตัวแบ่งนาฬิกาและโมดูลแสดงผล และปุ่มเริ่ม/หยุดและรีเซ็ตจะไปที่โมดูลแสดงผล เอาต์พุตของโมดูลตัวแบ่งนาฬิกา (480Hz และ 0.5MHz) ไปที่อินพุตนาฬิกาสองช่องของโมดูลแสดงผล เอาต์พุตของโมดูลแสดงผล (แอโนดและแคโทด) ไปที่เอาต์พุตของโมดูลสุดท้าย

ขั้นตอนที่ 7: ข้อจำกัด

ข้อจำกัด
ข้อจำกัด

อินพุตทั้งสองสามารถเป็นปุ่มใดก็ได้บนบอร์ด FPGA ของ Basys3 Atrix-7 และเอาต์พุตจะเป็นสี่ขั้วบวกและแปดขั้ว (เพราะคุณต้องการจุดทศนิยมระหว่างวินาทีและมิลลิวินาที) สำหรับการแสดงผลเจ็ดส่วน

ขั้นตอนที่ 8: เสร็จแล้ว

อัปโหลดโปรแกรมไปยังบอร์ด FPGA ของ Basy3 Atrix-7 แล้วกดปุ่มเริ่ม/หยุดเพื่อให้นาฬิกาจับเวลาทำงานต่อไป!

แนะนำ: