จะเกิดอะไรขึ้นเมื่อเปิดใช้งาน FPGA และไม่ได้กำหนดค่าไว้


10

ฉันกำลังพยายามทำความเข้าใจโดยทั่วไปเกี่ยวกับสิ่งที่เกิดขึ้นถ้าคุณปล่อย FPGA ที่ไม่มีโปรแกรมไว้เป็นเวลานาน

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

ผลลัพธ์ต่างกันในอุปกรณ์หรือผู้ผลิตที่แตกต่างกัน (Xilinx vs. Altera vs. ผู้อื่น)


ข้อมูลเพิ่มเติม:

ฉันมีบอร์ด SoC แบบกำหนดเองซึ่งใช้ Xilinx Virtex-6 FPGA ฉันยังมี Xilinx ML605 ซึ่งฉันใช้เพื่อการอ้างอิง

คณะกรรมการที่กำหนดเอง: ฉันเปิดเครื่องบนกระดาน ฉันสังเกตเห็นว่าฉันใช้เวลาสั้น ๆ ในการเขียนโปรแกรมโดยใช้ XMD (Xilinx Microprocessor Debugger) ถ้าฉันสูญเสียหน้าต่าง 20-30 วินาทีฉันต้องปิดและเปิดบอร์ดก่อนที่จะลองอีกครั้ง สิ่งนี้ไม่ได้เกิดขึ้นกับ ML605

เมื่อฉันพยายามเขียนโปรแกรมกำหนดบอร์ดเองบน XMD ฉันจะได้รับ:

Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.

แจ้งให้เราทราบสิ่งที่คุณคิด.


1
คุณเน้นคำถามของคุณและในการแก้ไข "ระยะเวลานาน" มันสำคัญจริงๆหรือไม่ถ้ามันใช้เวลาสองสามวินาทีหรือไม่กี่ชั่วโมง? ฉันไม่คิดว่ามันจะเป็นอย่างนั้น ..
m.Alin

ฉันเห็นปรากฏการณ์บนบอร์ด FPGA ที่กำหนดเองซึ่งฉันได้รับหน้าต่างการเขียนโปรแกรม 20-30 วินาที หากฉันไม่ได้ตั้งโปรแกรมในหน้าต่างนี้ฉันไม่สามารถโปรแกรมได้สำเร็จ ใจความสำคัญของคำถามของฉันไม่ใช่ระยะเวลา แต่เพื่อทำความเข้าใจปรากฏการณ์
boffin

คุณสามารถเชื่อมต่อกับอุปกรณ์ได้ทั้งหมดหรือไม่? หรือมันล้มเหลวเมื่อคุณพยายามตั้งโปรแกรม? ข้อผิดพลาดที่โปรแกรมเมอร์ให้คืออะไร
embedded.kyle

1
คุณกำลังตั้งโปรแกรม FPGA ผ่าน JTAG โดยตรงหรือคุณกำลังโหลดชิปแฟลชก่อนจากนั้นจึงให้ FPGA กำหนดค่าผ่านทางนั้น
ajs410

@fpga_boffin คุณช่วยเพิ่มรายละเอียดเหล่านั้นในคำถามของคุณได้ไหม?
Jon L

คำตอบ:


7

นี่เป็นคำถามที่น่าสนใจ จากประสบการณ์ส่วนตัวฉันทิ้ง FPGA ไว้เป็นเวลาหลายชั่วโมงในสถานะที่ไม่มีโปรแกรมขณะทำการตรวจสอบวงจรที่เหลือเมื่อมีบอร์ดใหม่เข้ามาจากสภา ฉันไม่ได้สังเกตเห็นผลกระทบที่เป็นอันตรายใด ๆ จากการทำเช่นนั้น แต่ฉันไม่เคยคิดเกี่ยวกับเรื่องนี้โดยสุจริต

ฉันมองไปรอบ ๆ เพื่อลองค้นหาคำแนะนำจากผู้ผลิต FPGA แต่หาไม่เจอ ข้อความเดียวที่ฉันพบเกี่ยวกับสถานะนี้มาจากเอกสารทางเทคนิค Lattice และการออกแบบของ FPGA เองและไม่ใช่วิธีการใช้:

การใช้พลังงานคงที่ของอุปกรณ์แบบนิ่งที่ตั้งโปรแกรมไว้ล่วงหน้าคือปริมาณพลังงานที่ใช้โดย FPGA ก่อนที่อุปกรณ์จะถูกตั้งโปรแกรม สำหรับการใช้พลังงานของอุปกรณ์ที่เงียบสงบ FPGA อยู่ในสถานะที่ไม่ได้ตั้งโปรแกรม แต่ได้รับพลังงานแล้ว เป็นสิ่งสำคัญที่อุปกรณ์ไม่ใช้พลังงานอย่างมีนัยสำคัญในช่วงเวลานี้เนื่องจากแนวคิดของอุปกรณ์ FPGA สามารถดึงพลังงานมากเกินไปและอาจปิดเครื่องจ่ายไฟทำให้บอร์ดไม่สามารถเริ่มต้นตัวเองและระบบได้สำเร็จ
ซัพพลายเออร์ FPGA จึงต้องออกแบบอย่างระมัดระวังทรานซิสเตอร์ที่มีการออกแบบ 3 แบบคงที่ต่ำสำหรับการใช้พลังงานต่ำ A Lattice Semiconductor White Paper footprint พลังงานโดยไม่สูญเสียในพื้นที่ที่ต้องการประสิทธิภาพที่สูงขึ้น (เช่น I / O และ SERDES)

Xilinx กล่าวถึงสิ่งที่เป็นปัจจุบันนิ่งเพื่อให้คุณสามารถออกแบบแหล่งจ่ายไฟของคุณตาม แต่ไม่ได้พูดถึงผลกระทบของอุปกรณ์ที่มีต่อการปล่อยให้อยู่ในสถานะดังกล่าว:

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

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


6

ฉันอ้างอิงแผ่นข้อมูล Spartan 3เนื่องจากเป็น FPGA ที่ฉันคุ้นเคยมากที่สุด

หากคุณดูที่บทที่ 2 (คำอธิบายหน้าที่) ส่วน "การกำหนดค่า" มีไดอะแกรมโฟลว์สองขั้น รูปที่ 27 (หน้า 50) แสดงแผนผังการไหลของการโหลดจาก Flash รูปที่ 28 แสดงแผนภาพการไหลของ JTAG

นี่เป็นบทสรุปโดยย่อ

1) รอ Vccint, Vccaux และ Vcco ให้ถึงระดับที่ต้องการ

2) สลักการกำหนดค่าที่ชัดเจน

3) รอให้ INIT_B สูงขึ้น INIT_B เป็นเอาต์พุตแบบ open-drain ที่ต้นแบบภายนอกสามารถเก็บไว้ได้ต่ำเพื่อชะลอการกำหนดค่า

4) หมุดโหมดตัวอย่าง สิ่งนี้จะกำหนดว่าคุณจะโหลดผ่าน JTAG หรือ Flash หรือไม่และหาก Flash ไม่ว่าจะเป็น FPGA หรือแฟลชนั้นเป็นหลัก

5) โหลดเฟรมข้อมูลการกำหนดค่า

6) ตรวจสอบว่า CRC สำหรับเฟรมข้อมูลถูกต้อง หากไม่ถูกต้อง FPGA จะขับ INIT_B ต่ำเพื่อระบุข้อผิดพลาด CRC และจะยกเลิกการเริ่มต้น

ขั้นตอนที่ 5 อาจเป็นที่ที่คำถามจริงของคุณเกิดอะไรขึ้นถ้าไม่มีอะไรให้โหลด ดีที่คุณไม่ควรได้รับการขั้นตอนที่ 5 ถ้าคุณกำลังทำสิ่งที่ถูกต้อง ชิป Flash จะเก็บ INIT_B ต่ำจนกว่าจะพร้อมที่จะให้บริการข้อมูลกับ FPGA หากคุณกำลังใช้ JTAG ฉันไม่แน่ใจว่าโปรแกรมเมอร์ JTAG ของคุณจะมีค่า INIT_B ต่ำหรือไม่ แต่เมื่อไปที่โปรแกรม FPGA แล้วจะเป็นการยืนยัน PROG_B (โดยการขับต่ำ) ซึ่งจะทำให้ FPGA กลับมาอีกครั้ง ถึงขั้นตอนที่ 2

หากฉันเป็นคุณฉันจะกำหนดขอบเขตสัญญาณ INIT_B ระหว่างเปิดเครื่องเพื่อดูว่าเกิดอะไรขึ้น หากเริ่มต้นต่ำไปสูงแล้วกลับไปต่ำอีกครั้ง FPGA จะยกเลิกลำดับการเริ่มต้นและคุณอาจต้องยืนยัน PROG_B เพื่อรีเซ็ต FPGA


คำตอบของคุณไม่ได้กล่าวถึงสถานะภายในของ FPGA ก่อนขั้นตอนที่ 5 ซึ่งเป็นสิ่งที่ OP ต้องการทราบ
stevenvh

ขั้นตอน 2. ล้างการกำหนดค่าสลัก ขั้นตอนที่ 3 กำลังรอ INIT_B ฉันยังหารือเกี่ยวกับประเภทของการตัดสินใจที่ FPGA อาจทำเมื่อใดก็ตามที่พบว่าไม่มีข้อมูลการกำหนดค่าที่จะโหลด (INIT_B ต่ำไปเพื่อระบุข้อผิดพลาด CRC)
ajs410

1
คำขอโทษของฉันแผ่นข้อมูลที่ฉันอ้างอิงคือประมาณปี 2005 และได้รับการปรับปรุงในปี 2009 อย่างไรก็ตามถ้าคุณอ่านความคิดเห็นของฉันอย่างละเอียดจริง ๆ คุณจะสามารถค้นหาได้ บทที่ 2 คำอธิบายหน้าที่ภายใต้หัวข้อการกำหนดค่า ลิงค์ได้รับการปรับปรุงให้ชี้ไปที่แผ่นข้อมูลล่าสุดรวมถึงหมายเลขหน้าใหม่
ajs410

0

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

สำหรับซีรีส์ Altera Cyclone (ซึ่งฉันมีประสบการณ์มากที่สุด) หมายถึงนี้

  • หมุด I / O นั้นจะถูกดึงไปที่ VCCIO อย่างอ่อน (เพื่อให้ไอซีกับชิปที่แอคทีฟต่ำเปิดการใช้งานเส้นจากบัส)
  • เอาต์พุต CONF_DONE ถูกดึงต่ำ (คุณสามารถเชื่อมต่อสิ่งนี้กับพินการรีเซ็ตของไอซีอื่น ๆ เพื่อให้พวกมันอยู่ในการรีเซ็ตจนกว่าจะมีการโหลดการกำหนดค่ารวมทั้งเรียกคืนไปยังสถานะที่รู้จักเมื่อทำการกำหนดค่าใหม่) และ
  • อินพุตนาฬิกาจะไม่ถูกส่งต่อไปยังเครือข่ายนาฬิกา

ประเภท FPGA อื่น ๆ ควรมีความนิ่งในทำนองเดียวกันและให้เอาต์พุตที่ไม่กลับด้านและกลับด้านที่ระบุสถานะการกำหนดค่าให้กับส่วนที่เหลือของบอร์ด

การปล่อยอุปกรณ์ในสถานะนั้นไม่เป็นอันตรายเนื่องจากแกนกลางถูกแยกออกจากโลกภายนอกและมีเพียงแรงดึงเท่านั้นที่อาจมีกระแสไฟฟ้าเพียงเล็กน้อยเท่านั้น

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