ฉันจะถือว่าค่าคงที่ฮาร์ดโค้ดเหล่านี้เป็นสาธารณะ มีตัวเลือกไม่กี่:
ปฏิบัติต่อค่าคงที่เป็นอินพุตพิเศษให้กับวงจรตามที่คุณแนะนำ โปรดทราบว่าสายอินพุตสามารถใช้ซ้ำได้กับประตูหลายบาน ดังนั้นคุณจึงต้องการเพียงสายเดียว จริง
และ เท็จ
ลวดสำหรับวงจรทั้งหมดส่วนใหญ่สนับสนุนแผนการอ่านไม่ออก ไม่
ประตูฟรี ดังนั้นคุณต้องการค่าคงที่เท่านั้น จริง
ลวด. นอกจากนี้ยังปรากฎว่าคุณสามารถใช้ จริง
ป้ายลวดเป็นสตริงของเลขศูนย์ทั้งหมดโดยไม่สูญเสียความหมายทั่วไป เมื่อรวมข้อสังเกตทั้งหมดเหล่านี้เข้าด้วยกัน สายอินพุตคงที่พิเศษจะเพิ่มต้นทุนให้กับวงจร
เผยแพร่ค่าคงที่ผ่านวงจร ตัวอย่างเช่นประตู y=AND(x,จริง)
กลายเป็นเพียง y=x
หมายความว่าคุณสามารถแทนที่ ย
สายโดย x
ในประตูท้ายน้ำใด ๆ ที่ใช้ ย
เป็นอินพุต ประตู y=AND(x,เท็จ)
กลายเป็น y=เท็จ
และคุณสามารถเผยแพร่ได้อีกครั้ง y=เท็จ
ล่องในประตูที่ใช้ ย
เป็นอินพุต เมื่อทำสิ่งนี้ คุณจะเห็นว่าเกตดาวน์สตรีมของค่าคงที่ฮาร์ดโค้ดสามารถถูกลบออกจากวงจรได้ทั้งหมด กระบวนการนี้ไม่เกี่ยวกับการอ่านไม่ออก แต่เป็นเพียงการลดความซับซ้อนของวงจรบูลีนตามอินพุตแบบฮาร์ดโค้ด
หากเฉพาะผู้ที่อ่านไม่ออกเท่านั้นที่รู้ค่าคงที่ เป้าหมายคือลดความซับซ้อนของวงจร/การอ่านไม่ออกในขณะที่ซ่อนค่าคงที่เหล่านั้น
แผนการที่อ่านไม่ออกส่วนใหญ่ (และแน่นอนว่าเป็นผู้นำของศิลปะ) สนับสนุนประตูที่ดูดซับได้ฟรี ไม่
ประตู หมายความว่าคุณสามารถอ่านไม่ออก และ(ไม่ใช่(x),y)
, และ(x,ไม่ใช่(y))
, ... ประตูสำหรับค่าใช้จ่ายเช่นเดียวกับการอ่านไม่ออก และ
ประตู. ในความเป็นจริงแผนการที่อ่านไม่ออกเหล่านี้ซ่อนการมีอยู่ของสิ่งเหล่านี้ ไม่
ประตู จากการสังเกตนี้ คุณยังสามารถทำ #1 จากด้านบนได้ หากคุณต้องการฮาร์ดโค้ดประตู y=และ(x,เท็จ)
จากนั้นคุณสามารถเลี้ยงเดี่ยวของคุณ จริง
ป้อนลวดเข้าประตูของแบบฟอร์ม y=และ(x,ไม่(จริง))
ในขณะที่ซ่อนการปรากฏตัวของสิ่งนั้น ไม่
(เช่น การซ่อนว่าเกตเข้ารหัสตายตัวด้วย a จริง
หรือ เท็จ
).
อย่างไรก็ตาม คุณสามารถทำได้ดีขึ้นเล็กน้อยโดยใช้ "ประตูกั้นกึ่งกลาง" จากโครงสร้างครึ่งประตู สิ่งนี้ช่วยให้คุณอ่านไม่ออก และ(x,จริง)
หรือ และ (x,เท็จ)
ประตูในขณะที่ซ่อนอันที่อ่านไม่ออกในราคาครึ่งหนึ่งของราคาเต็ม และ
-ประตู.