“ ครึ่งสลัก” ใน FPGA คืออะไร


10

ในบทความเกี่ยวกับ FPGA ที่มีการฉายรังสีอย่างหนักฉันเจอประโยคนี้:

"ข้อกังวลอีกประการเกี่ยวกับอุปกรณ์ Virtex คือครึ่งสลักบางครั้งใช้สลักครึ่งในอุปกรณ์เหล่านี้สำหรับค่าคงที่ภายในเนื่องจากมีประสิทธิภาพมากกว่าการใช้ตรรกะ"

ฉันไม่เคยได้ยินเกี่ยวกับอุปกรณ์ดั้งเดิมของ FPGA ที่เรียกว่า "สลักครึ่ง" เท่าที่ฉันเข้าใจดูเหมือนว่ากลไก "แหล่งที่มา" ค่าคงที่ '0' หรือ '1' ในเครื่องมือแบ็กเอนด์ ... ทุกคนสามารถอธิบายสิ่งที่ "ครึ่งสลัก" โดยเฉพาะอย่างยิ่งในบริบทของ FPGAs และพวกเขาสามารถใช้เพื่อบันทึกตรรกะได้อย่างไร

แก้ไข: กระดาษที่ฉันพบนี้คือการเปรียบเทียบของ FPGAs การแผ่รังสีอย่างหนักและการแผ่รังสีที่ทนต่อรังสีสำหรับการใช้งานในอวกาศ


7
คุณใช้เครื่องมือค้นหาใด
Ale..chenski

มันเป็นความผิดที่มีการรายงานในขั้นตอนการออกแบบที่ต้องมีการดำเนินการแก้ไขslideserve.com/delilah/single-event-upsets-in-sram-fpgas เนื่องจากความเครียดที่เร่งขึ้นเช่นข้อผิดพลาดเล็กน้อยภายในยกเว้นและสามารถทำให้เกิดภาระได้ ตัวอย่างผลลัพธ์
Tony Stewart Sunnyskyguy EE75

1
@ TonyStewart.EEsince'75 ข้อผิดพลาดถูกใช้สำหรับค่าคงที่ภายในหรือไม่ ไม่สมเหตุสมผลเลย
duskwuff -inactive-

ไม่ได้ Half-latches เป็นความผิดพลาดที่ซ่อนอยู่ซึ่งต้องหลีกเลี่ยง
Tony Stewart Sunnyskyguy EE75

1
@ TonyStewart.EEsince'75 ที่ยังไม่สมเหตุสมผลในบริบท งานนำเสนอที่คุณเชื่อมโยงเพื่อแสดงให้เห็นถึง "half latch" อย่างชัดเจนในฐานะเป็นส่วนหนึ่งของ FPGA ควบคู่ไปกับสิ่งอื่น ๆ เช่น "config bits" และ "BRAM" มันไม่ใช่ความผิด มันเป็นสิ่งที่สามารถได้รับผลกระทบจากความผิดพลาด
duskwuff -inactive-

คำตอบ:


14

Half-latch เป็นเกทที่มีการตอบรับเชิงบวกที่นำมาใช้กับทรานซิสเตอร์แบบดึงขึ้นที่อ่อนแอ:

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

เมื่ออินพุตถูกขับเคลื่อนอย่างแข็งขันมันจะแทนที่สัญญาณที่มาจากการดึงที่อ่อนแอ เมื่ออินพุตอยู่ในสถานะ Z พูลอัพที่อ่อนแอสามารถเก็บตรรกะ "1" ไว้ที่อินพุต (และ "0" ที่เอาต์พุต) ได้ไม่ จำกัด มันจะไม่ทำให้สถานะตรงกันข้ามตรงกันข้ามอย่างน่าเชื่อถือดังนั้น "ครึ่งสลัก"

ทำไมบางคนถึงต้องการสลักครึ่งตัวแทนที่จะเป็นสลักเต็ม? สำหรับสัญญาณบางอย่างมันไม่สมเหตุสมผลที่จะเก็บค่าคงที่ทั้งสอง ตัวอย่างเช่น D-flipflop สามารถมีenableอินพุต latched สูงเท่านั้นและresetอินพุต latched ต่ำไม่เช่นนั้นจะถูกตัดออกระหว่างการสังเคราะห์ นั่นคือชนิดของสัญญาณที่ใช้ครึ่งสลัก: มันจะยึดค่าเริ่มต้นหรือขับเคลื่อนโดยการเชื่อมต่อระหว่างกัน


ดังนั้นคุณควรขับอินพุตสูงสักครู่ก่อนที่จะลอยหรือคุณจะจบลงด้วยสถานะ metastable ที่ในที่สุดจะพลิก แต่คาดเดาไม่ได้?
hmakholm ออกเดินทางจากโมนิก้า

@HenningMakholm ใช่ FPGA จะขับครึ่งสลักก่อนแต่ละรอบการเขียนโปรแกรม
Dmitry Grigoryev

นั่นฟังดูว่าเป็นภาวะแทรกซ้อนที่สำคัญของวงจรใดก็ตามที่ส่งสัญญาณอินพุตเพียงเพื่อบันทึกทรานซิสเตอร์ตัวเดียว หากคุณสามารถเขียนบางสิ่งเกี่ยวกับสาเหตุบนโลกที่จะคุ้มค่าฉันคิดว่ามันจะปรับปรุงคำตอบ
hmakholm ออกเดินทางจากโมนิก้า

@HenningMakholm ทำไมคุณคิดว่าครึ่งสลักเพียงบันทึกทรานซิสเตอร์เดียว? AFAIK จะใช้เป็นค่าคงที่ซึ่งจะต้องเข้ารหัสใน LUT
Dmitry Grigoryev

สลักที่ใช้งานได้อย่างสมบูรณ์จะต้องการ NMOS ที่อ่อนแอเพียงตัวเดียวนอกเหนือจากไดอะแกรมของคุณเพื่อดึงอินพุตลงเมื่อเอาต์พุตสูงใช่ไหม? ฉันไม่รู้ว่า LUT คืออะไร - คุณสามารถพูดอะไรบางอย่างในคำตอบของคุณเกี่ยวกับวิธีการ "ใช้เป็นค่าคงที่" ได้หรือไม่ถ้าสิ่งเดียวที่สามารถเก็บได้อย่างน่าเชื่อถือคือ 1? สิ่งเหล่านี้นำไปใช้อย่างไร
hmakholm ออกเดินทางจากโมนิก้า

-2

ดูเหมือนว่าพวกเขาให้เหตุผลในการรักษาค่าคงที่

เนื่องจากไม่สามารถสังเกตเห็นได้จึงสามารถเริ่มต้นได้เพียงครั้งเดียวเท่านั้น (ดังนั้นสามารถกำหนดค่าใหม่ได้หลังจากการกำหนดค่าเริ่มต้นอุปกรณ์) เท่านั้นจึงไม่ใช้ LUT เต็มรูปแบบและใช้ง่ายกว่ามาก


1
ฉันเห็นข้อความที่เป็นนามธรรมเมื่อฉันค้นหา google ด้วย มันไม่ได้อธิบายอย่างถูกต้องตามคำถามของ OP และไม่นำไปสู่ตัวอย่างแผ่นข้อมูล downvoting
TonyM

หากเป็นโครงสร้างที่แตกต่างกันของ FPGA และน้อยกว่า LUT แบบเต็มโดยมีรายละเอียดเพิ่มเติมอีกสองสามข้อโปรดอธิบายว่ามันไม่ตอบคำถาม 'มันคืออะไร' และสำหรับ 'วิธีที่ช่วยประหยัดตรรกะ' นั่นคือคำตอบด้วย .
gommer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.