สารบัญ:

DIY Dynamic Memory Block: 5 ขั้นตอน
DIY Dynamic Memory Block: 5 ขั้นตอน

วีดีโอ: DIY Dynamic Memory Block: 5 ขั้นตอน

วีดีโอ: DIY Dynamic Memory Block: 5 ขั้นตอน
วีดีโอ: Amazing idea 💡Homemade Mobile Gimbal || camera stabilizer || Hacker JP 2024, กรกฎาคม
Anonim
DIY บล็อกหน่วยความจำแบบไดนามิก
DIY บล็อกหน่วยความจำแบบไดนามิก

SLG46880 และ SLG46881 แนะนำบล็อกใหม่หลายบล็อกที่ไม่เคยปรากฏในอุปกรณ์ GreenPAK รุ่นก่อน บันทึกการใช้งานนี้อธิบายบล็อกหน่วยความจำแบบไดนามิก (DM) และวิธีใช้งาน

ข้อได้เปรียบหลักของบล็อก DM คือสามารถกำหนดค่าใหม่เพื่อทำหน้าที่ที่แตกต่างกันในสถานะต่างๆ ของเครื่อง Asynchronous State (ASM) 12 สถานะของ SLG46880/1 สิ่งนี้ทำให้พวกเขาเป็นองค์ประกอบที่ยืดหยุ่นมาก เนื่องจากสามารถใช้ได้ทางเดียวในสถานะ 0 และอีกทางหนึ่งในสถานะ 1

ด้านล่างนี้ เราได้อธิบายขั้นตอนที่จำเป็น ทำความเข้าใจว่าชิป GreenPAK ได้รับการตั้งโปรแกรมเพื่อสร้าง Dynamic Memory Block อย่างไร อย่างไรก็ตาม หากคุณต้องการเพียงแค่ผลลัพธ์ของการเขียนโปรแกรม ให้ดาวน์โหลดซอฟต์แวร์ GreenPAK เพื่อดูไฟล์การออกแบบ GreenPAK ที่เสร็จสมบูรณ์แล้ว เสียบ GreenPAK Development Kit เข้ากับคอมพิวเตอร์ของคุณและกดโปรแกรมเพื่อสร้าง IC แบบกำหนดเองสำหรับ Dynamic Memory

ขั้นตอนที่ 1: พื้นฐานการบล็อก DM

พื้นฐานการบล็อก DM
พื้นฐานการบล็อก DM
พื้นฐานการบล็อก DM
พื้นฐานการบล็อก DM

มี 4 บล็อก DM ใน Dialog GreenPAK SLG46880/1 บล็อก DM ที่ไม่ได้กำหนดค่าจะแสดงในรูปที่ 1

บล็อก DM ทั้งหมดใน SLG46880/1 มีทรัพยากรดังต่อไปนี้:

● ตารางค้นหา 2 ตาราง: LUT 3 บิตและ LUT 2 บิต

● 2 มัลติเพล็กเซอร์

● 1 CNT/DLY

● 1 บล็อกเอาต์พุต

รูปที่ 2 แสดงบล็อก DM เดียวกันกับขั้วต่อแบบสี (สีเหล่านี้ไม่ปรากฏอยู่ภายในGreenPAK™ Designer สีเหล่านี้มีไว้เพื่อจุดประสงค์ในการอธิบายเท่านั้น) ตัวเชื่อมต่อสีเขียวเป็นอินพุตไปยังบล็อก DM จากเมทริกซ์ การเชื่อมต่อสีส้มเป็นการเชื่อมต่อเฉพาะภายในบล็อก DM ซึ่งไม่สามารถเปลี่ยนแปลงหรือย้ายได้ ขั้วต่อสีน้ำเงินคือจุดต่อนาฬิกาสำหรับตัวนับ ตัวเชื่อมต่อสีม่วงสามารถใช้เพื่อทริกเกอร์การเปลี่ยนสถานะ แต่ไม่ใช่การเชื่อมต่อเมทริกซ์ทั่วไป ตัวเชื่อมต่อสีเหลืองคือเอาต์พุตเมทริกซ์จากบล็อก DM

ขั้นตอนที่ 2: การสร้างการกำหนดค่าบล็อก DM ใหม่

การสร้างการกำหนดค่าบล็อก DM ใหม่
การสร้างการกำหนดค่าบล็อก DM ใหม่
การสร้างการกำหนดค่าบล็อก DM ใหม่
การสร้างการกำหนดค่าบล็อก DM ใหม่

ในการสร้างการกำหนดค่าบล็อก DM ใหม่ คุณจะต้องเลือกบล็อก DM และเปิดแผงคุณสมบัติดังแสดงในรูปที่ 3 ตอนนี้คุณสามารถสร้างการกำหนดค่าใหม่สำหรับบล็อก DM นี้โดยคลิกที่ไอคอน "+" ที่ด้านบนขวา. ณ จุดนี้ คุณสามารถเปลี่ยนชื่อการกำหนดค่าได้หากต้องการและกำหนดค่าบล็อก DM ตามที่คุณต้องการโดยใช้แผงคุณสมบัติ คุณสามารถลบการกำหนดค่าที่ไม่จำเป็นโดยเลือกจากเมนูแบบเลื่อนลง แล้วคลิกปุ่ม "-"

บล็อก DM แต่ละบล็อกสามารถมีการกำหนดค่าที่แตกต่างกันได้ถึง 6 แบบ สามารถใช้การกำหนดค่าบล็อก DM ใดก็ได้ใน 12 สถานะ ASM แต่อนุญาตให้กำหนดค่าได้เพียงรายการเดียวต่อบล็อก DM ต่อสถานะ รูปที่ 4 แสดงวิธีที่แถบตัวจัดการรีซอร์สระบุว่ามีการใช้คอนฟิกูเรชัน DM0_0 ตัวใดตัวหนึ่ง จำนวนการกำหนดค่าสำหรับ DM0_0 เพิ่มขึ้นจาก 0/6 เป็น 1/6

ขั้นตอนที่ 3: ใช้ DM Block เพื่อทริกเกอร์การเปลี่ยนสถานะ

ใช้บล็อก DM เพื่อทริกเกอร์การเปลี่ยนสถานะ
ใช้บล็อก DM เพื่อทริกเกอร์การเปลี่ยนสถานะ

รูปที่ 5 แสดงวิธีต่างๆ สองสามวิธีในการกระตุ้นการเปลี่ยนแปลงสถานะ เราได้สร้างการกำหนดค่าใหม่สำหรับ DM0_0 และ DM1_0 และตั้งชื่อว่า "myConfig" และ "myConfig1" DM ด้านบนจะใช้เป็น 3 บิตและเกทอย่างง่าย เนื่องจาก mux ด้านบนจะส่งเอาต์พุตของเกต AND ผ่าน และบัฟเฟอร์ 2 บิตจะส่งผ่านไปยังบล็อกเอาต์พุต (LUT แบบ 2 บิตสามารถกำหนดค่าเป็นบัฟเฟอร์สำหรับบล็อก CNT/DLY ได้) ตัวเชื่อมต่อ "to ASM ใช้เพื่อทริกเกอร์การเปลี่ยนสถานะจากสถานะ 0 เป็นสถานะ 1 ในทำนองเดียวกัน ใช้การเชื่อมต่อเมทริกซ์จาก Pin5 เพื่อทริกเกอร์การเปลี่ยนสถานะจากสถานะ 0 เป็นสถานะ 2 ในที่สุด DM1_0 ได้รับการกำหนดค่าเพื่อให้ทั้งสอง muxes ผ่านสัญญาณจาก Pin6 ตัวนับได้รับการกำหนดค่าเป็น 100µs ทั้งสองขอบล่าช้า และ LUT แบบ 2 บิตเป็นเกท AND เช่นเดียวกับใน DM0_0 บล็อกเอาต์พุตจะใช้เพื่อทริกเกอร์การเปลี่ยนสถานะอื่น

ขั้นตอนที่ 4: การใช้ DM Block เพื่อโต้ตอบกับบล็อกภายนอก ASM

การใช้บล็อก DM เพื่อโต้ตอบกับบล็อกภายนอก ASM
การใช้บล็อก DM เพื่อโต้ตอบกับบล็อกภายนอก ASM
การใช้บล็อก DM เพื่อโต้ตอบกับบล็อกภายนอก ASM
การใช้บล็อก DM เพื่อโต้ตอบกับบล็อกภายนอก ASM

ตามที่คุณอาจสังเกตเห็นในส่วนก่อนหน้า บล็อกเอาต์พุตของ DM0_0 มีเอาต์พุต "ถึงเมทริกซ์" 3 รายการ ในขณะที่บล็อกเอาต์พุตของ DM1_0 ไม่มีเอาต์พุตเมทริกซ์ สิ่งนี้เป็นจริงสำหรับ DM0_1 และ DM1_1 เช่นกัน DM0_1 มีเอาต์พุตเมทริกซ์ 3 รายการ ในขณะที่ DM1_1 ไม่มีเอาต์พุต เอาต์พุต "ถึงเมทริกซ์" 3 ช่องสามารถเชื่อมต่อกับตัวเชื่อมต่อเมทริกซ์อื่นๆ เช่น พิน, LUT, DFF เป็นต้น ซึ่งแสดงไว้ในรูปที่ 6

โปรดทราบว่าเมื่อทำการเชื่อมต่อระหว่างพิน "to Matrix" และบล็อกอื่นๆ นอกพื้นที่ State Machine แล้ว จะมีอยู่ในทุกสถานะ ไม่ว่าจะใช้การกำหนดค่า DM แบบใด ในรูปที่ 6 ส่วนบนแสดง myConfig0 ของ DM0_0 ซึ่งมีอยู่ในสถานะ 0 ส่วนด้านล่างแสดง myConfig1 ของ DM0_0 ซึ่งมีอยู่ในสถานะ 1 การเชื่อมต่อ "to Matrix" ด้านบนในการกำหนดค่าทั้งสองเชื่อมต่อกับ Pin3 ในขณะที่ตรงกลาง หนึ่งเชื่อมต่อกับ LUT0 แบบ 2 บิต มีเพียงหนึ่งในการเชื่อมต่อ "กับเมทริกซ์" เท่านั้นที่สามารถ "ใช้งาน" ได้ตลอดเวลา มี 4 ตัวเลือกในเมนูแผงคุณสมบัติสำหรับบล็อกเอาต์พุตของ DM0_0 และ DM0_1: ● Out0/1/2 เก็บไว้ ● บายพาสไปที่ out0, out1/2 เก็บ ● บายพาสไปยัง out1, out0/2 เก็บ ● บายพาสไปยัง out2, out1/1 เก็บ การตั้งค่าเหล่านี้ใช้เพื่อกำหนดว่าเอาต์พุตใดจากสามเอาต์พุตที่ใช้งานในแต่ละการกำหนดค่า หากเลือกตัวเลือกแรก เอาต์พุตของ LUT แบบ 2 บิตของบล็อก DM จะไม่ถูกส่งไปยังเอาต์พุต "to Matrix" ใดๆ ในสามรายการ ค่าของสัญญาณทั้งสามนั้นจะยังคงไม่เปลี่ยนแปลงในสถานะนั้น อย่างไรก็ตาม หากใช้ตัวเลือกอื่นใดในสามตัวเลือก เอาต์พุตของ 2 บิต LUT ของบล็อก DM จะถูกส่งต่อไปยัง out0, out1 หรือ out2 ตามลำดับ และค่าของเอาต์พุตอีกสองเอาต์พุตจะไม่เปลี่ยนแปลง

ขั้นตอนที่ 5: ตัวอย่างการออกแบบ

ตัวอย่างการออกแบบ
ตัวอย่างการออกแบบ

ในตัวอย่างการออกแบบด้านบน IN0, IN1 และ IN2 เป็น OR ร่วมกัน ในขณะเดียวกัน IN3 ถูกหน่วงเวลา 1 ms จากนั้น AND’d ด้วยเอาต์พุตของเกท OR บล็อก to Matrix ได้รับการกำหนดค่าเพื่อให้เอาต์พุตของบล็อก DM ถูกส่งไปยัง OUT0 ใน STATE0 ในขณะที่ค่าที่ OUT1 และ OUT2 จะถูกเก็บไว้

บทสรุป

ด้วยความสามารถในการกำหนดค่าใหม่ บล็อกหน่วยความจำแบบไดนามิกใน Dialog GreenPAK SLG46880/1 มีความยืดหยุ่นสูง และสามารถใช้งานได้หลากหลายวิธี เมื่อคุณคุ้นเคยกับการทำงานกับบล็อก DM แล้ว คุณจะสามารถสร้างการออกแบบที่ซับซ้อนมากขึ้นได้โดยการรวมการกำหนดค่าบล็อก DM ที่แตกต่างกันในสถานะ ASM ที่แตกต่างกัน

แนะนำ: