ในฐานะวิศวกรที่มีประสบการณ์ ( 3 ปีพร้อมการออกแบบ FPGA และระบบฝังตัว ) ฉันกำลังบอกคุณว่าคุณต้องตรวจสอบแผ่นข้อมูลและคู่มือผู้ใช้ของ FPGA มันไม่ใช่คำตอบง่ายๆ
คุณต้องออกแบบให้เหมาะกับประเภท FPGA ที่คุณเลือก FPGA บางตัวมีFlipFlopsที่ออกแบบมาเพื่อรีเซ็ต Async บางรุ่นถูกออกแบบมาเพื่อซิงค์รีเซ็ต
คุณต้องตรวจสอบคู่มือผู้ใช้ FPGA ว่าคุณใช้ FlipFlops ประเภทใด
Implementor / Mapper จะเลือกเส้นทางเฉพาะสำหรับการรีเซ็ตของคุณ ( รหัสสามารถเรียกใช้ที่ความถี่ที่สูงขึ้นและใช้พื้นที่น้อยลง ) ถ้าคุณจับคู่รหัสของคุณกับประเภทดั้งเดิม FPGA
การออกแบบของคุณจะทำงานในกรณีใด ๆแต่บางครั้ง FPGA Implementor จะออกนอกเส้นทางเพื่อให้การทำงานแบบลอจิกของคุณ ( เพิ่มลอจิกมากขึ้น ) แต่จะทำให้ความถี่สูงสุดลดลงและ / หรือทรัพยากร FPGA เพิ่มเติม
ตัวอย่าง: ทดสอบด้วยZYNQ ของ Xilinx ( FPGA ออกแบบมาสำหรับการรีเซ็ตแบบซิงก์ - ดูคู่มือผู้ใช้พื้นฐาน ) ด้วยการเปลี่ยนการรีเซ็ตจาก async เป็นการซิงค์ความถี่สูงสุดที่เสถียรจะเปลี่ยนจาก 220MHz เป็น 258MHzและดังนั้นฉันจึงผ่านมาร์จิ้นความถี่ของฉัน
นอกจากนี้ฉันอาจเพิ่มว่าผู้ดำเนินการไม่ทราบว่าสัญญาณนาฬิกาและการรีเซ็ตคืออะไร มันกำหนดพิน flipflop ให้สัญญาณโดย ORDER ไม่ใช่ตามชื่อ ดังนั้นใน FPGA บางตัวผู้ดำเนินการเลือกสัญญาณแรกหลังจาก "โพรเซส () เริ่มต้น" ใน VHDL เป็นนาฬิกาในบางครั้งเป็นการรีเซ็ตขึ้นอยู่กับว่า FPGA ตัวดำเนินการถูกตั้งค่าเป็น