ฉันจะระบุสัญญาณ“ ไม่สนใจ” ใน VHDL ได้อย่างไร?
ในหลักสูตรการออกแบบลอจิกที่เราทุกคนได้เรียนรู้ว่ามันเป็นไปได้ที่จะลดการทำงานตรรกะเช่นโดยการใช้แผนที่ Karnaugh หรืออัลกอริทึมควิน-คสัส นอกจากนี้เรายังได้เรียนรู้ว่าค่า"ไม่สนใจ"เพิ่มโอกาสในการลดขนาด ตัวอย่างเช่นใช้ไฟล์ลงทะเบียน write_addressและwrite_dataสัญญาณไม่ได้เรื่องจริงๆเมื่อสัญญาณwrite_enable '0'ดังนั้นพวกเขาควรจะกำหนดค่า "ไม่สนใจ" เพื่อให้การเพิ่มประสิทธิภาพมากขึ้นในตรรกะที่ขับสัญญาณเหล่านี้ (เช่นไม่ได้อยู่ในไฟล์ลงทะเบียนตัวเอง) วิธีที่ถูกต้องในการระบุค่า "Don't Care" ใน VHDL คือเพื่อให้เครื่องมือการสังเคราะห์มีพื้นที่มากขึ้นสำหรับการเพิ่มประสิทธิภาพที่เป็นไปได้? จนถึงตอนนี้ฉันได้พบสิ่งต่อไปนี้ซึ่งอาจเหมาะสม แต่ฉันไม่แน่ใจจริงๆว่าข้อดีข้อเสียของแต่ละวิธีคืออะไร: เพียงไม่กำหนดสัญญาณ ดูเหมือนว่ามันจะทำงานได้ อย่างไรก็ตามฉันพบว่ามันไม่ทำงานเมื่อคุณต้องการกำหนด "ไม่ทำอะไรคงที่" บางrecordประเภทเนื่องจากค่าคงที่บันทึกต้องได้รับการระบุอย่างสมบูรณ์ (อย่างน้อย Modelsim บอกฉันอย่างนั้น) std_logic_1164แพคเกจที่กำหนดค่าสำหรับ'-' -- Don't care std_ulogicดูเหมือนว่านี่เป็นตัวเลือกที่ถูกต้องสำหรับความหมายที่ชัดเจนว่า "ไม่สนใจ" แต่ฉันไม่เคยเห็นมันมาใช้เลย (ยกเว้นในโครงสร้าง VHDL-2008 ที่ไม่เกี่ยวข้องcase?) Modelsim ใช้ค่า'X'เพื่อแสดงสัญญาณที่ไม่ได้กำหนด อย่างไรก็ตามฉันไม่แน่ใจว่าเครื่องมือการสังเคราะห์เข้าใจการ'X'มอบหมาย - อย่างชัดเจนว่า "ไม่สนใจ" ต่อไปนี้เป็นตัวอย่างโค้ดขนาดใหญ่เกินไปสำหรับการชี้แจงซึ่งฉันได้เตรียมข้อมูล'-'เบื้องต้นเกี่ยวกับการไม่สนใจสัญญาณด้วย ที่คุณสามารถดูสัญญาณcontrol.reg_write_addressสามารถมีค่าที่แตกต่างกัน 3: "----", และinstruction(11 downto 8); instruction(3 …