ฉันเรียนรู้ที่จะใช้ FPGA (คณะกรรมการพัฒนา Papilio ซึ่งมี xilinx spartan3e โดยใช้ vhdl)
ฉันต้องแบ่งพัลส์ที่เข้ามาด้วยหมายเลข (รหัสยาก)
ฉันสามารถเห็น 3 ตัวเลือก - คร่าวๆเป็น pseudocode (ใช้ 10 นับเป็นตัวอย่าง):
- เริ่มต้นเป็น 0 เมื่อการเพิ่มขึ้นของขอบการป้อนข้อมูลเพิ่มขึ้น 1 เปรียบเทียบกับ 10 ถ้ามันเท่ากันให้รีเซ็ตเป็น 0 และทริกเกอร์เอาท์พุทพัลส์
- เริ่มต้นที่ 10 เมื่ออินพุทขอบเพิ่มขึ้นลดลง 1 เปรียบเทียบกับ 0; หากเท่ากันให้รีเซ็ตเป็น 10 และทริกเกอร์เอาท์พุทพัลส์
- เริ่มต้นที่ 9 แต่ให้แน่ใจว่ามีบิตนำหน้า "0" อย่างน้อย 1 ซึ่งเป็นบิตเอาต์พุตของฉัน บนอินพุตที่เพิ่มขึ้นขอบลดลง 1 บนขอบที่เพิ่มขึ้นของบิตเอาท์พุทรีเซ็ต
รอบการปฏิบัติหน้าที่ไม่สำคัญ
เป็นหนึ่งในสิ่งเหล่านี้ดีกว่าคนอื่น ๆ ? มีวิธีที่ดีกว่าที่ฉันไม่เคยคิดมาก่อนหรือไม่?
มีวิธี "มาตรฐาน" ที่จะให้ผู้รวบรวมโอกาสที่ดีที่สุดในการเพิ่มประสิทธิภาพหรือไม่