EES270 · DC LAB 4 · ตอนที่ 11
VHDL — เขียนวงจรแทนการลากสาย
ตอนที่แล้วเราลากสายเจ็ดเส้นเพื่อขับจอเจ็ดขีด รอบนี้เราพิมพ์ตัวหนังสือไม่กี่บรรทัดแล้วได้ของเดียวกันครับ กดเล่นทีละฉาก เมื่อถึงคำถาม เสียงจะหยุดรอให้น้องตอบครับ
ประมาณ 17 นาที
ของที่น้องมีแล้ว: เกต AND OR XOR · ตารางค่าความจริง · K-map · จอเจ็ดขีดจากตอนที่แล้ว
คำถามให้กดตอบ 14 จุด
โจทย์ในชีทครบทั้ง Lab work 1 ถึง 5
1ทำไมต้องเขียนแทนการลากสาย
คำที่ต้องจำPLD คือไอซีเปล่าที่โปรแกรมได้ ส่วน VHDL คือภาษาที่เราใช้พิมพ์บอกมันว่าอยากได้วงจรอะไรครับ
2วงจรบวกเลขฐานสอง
สองสมการของตัวบวกครึ่งco <= a and b; และ sum <= a xor b; — สองบรรทัดนี้คือทั้งหมดของวงจรครับ
3อ่านโค้ด VHDL ให้ออก
กฎการตั้งชื่อจากชีทDo not start with a number. · Do not end with an underscore. · Do not use the words preserved in VHDL, such as ‘and’.
และ VHDL ไม่สนตัวพิมพ์ใหญ่เล็ก — A กับ a คือตัวเดียวกันครับ
และ VHDL ไม่สนตัวพิมพ์ใหญ่เล็ก — A กับ a คือตัวเดียวกันครับ
4ตัวบวกเต็ม กับ K-map
เจอลายหมากรุกเมื่อไร ให้นึกถึง xorK-map ของผลบวกจับกลุ่มไม่ได้เลย คำตอบจึงเป็น s <= a xor b xor cin; ครับ
5โจทย์ในชีท — ลองทำเองทีละข้อ
เปิดฉากแล้วกดเล่นเพื่อฟังโจทย์ครับ พี่จะหยุดรอคำตอบก่อนแสดงวิธีทำครับ
Lab work 3เขียน full adder เป็น VHDL
Develop a PLD by writing the Boolean expressions for sum and carry-out in VHDL form. Attach the screenshot of the code in the provided space.
เปิดโจทย์และวิธีทำ Lab work 3
Lab work 4ต่อสี่ตัวเป็นตัวบวกสี่บิต
Design a 4-bit full adder by connecting the 4 full adder PLDs designed above. You may use Hex Keyboards for inputs A and B and Hex Displays to show outputs.
เปิดโจทย์และวิธีทำ Lab work 4
Lab work 5 — PLD ที่ทำหน้าที่แทนไอซี 7447
6ทางลัด — เขียนทั้งตารางรวดเดียว
กับดักลำดับบิตภาคผนวก 1 เขียนเลข 2 ว่า 1011011 ส่วนภาคผนวก 2 เขียน 1101101 — เป็นเลขเดียวกัน ต่างกันแค่ประกาศขาเรียงจาก g ไป a กับจาก a ไป g ครับ ดูบรรทัด port ทุกครั้งก่อนอ่านค่า
7สรุป — สามข้อที่เอาไปใช้ต่อได้
สามอย่างที่นำไปใช้ต่อได้
PLD: ไอซีเปล่าที่ยังไม่มีวงจรข้างใน เราพิมพ์บอกมันว่าอยากได้อะไร แล้วมันกลายเป็นไอซีตัวนั้นครับ
โครงของโค้ด: entity บอกหน้าตาขา · architecture บอกว่าขาออกได้ค่ามาจากอะไรครับ
เขียนได้หลายแบบ: สมการทีละบรรทัด · with … select ทั้งตารางรวดเดียว · หรือ process แบบมีเงื่อนไข ผลลัพธ์เหมือนกันครับ
เก็บไว้ใช้ตอนนั่งหน้าโปรแกรม
เจอโจทย์ที่ต้องต่อสายเป็นสิบเส้นเมื่อไร ลองถามตัวเองก่อนว่าเขียนเอาแทนได้ไหมครับ
ย้อนดูตอน Lab 3กลับหน้าวิชาเจอโจทย์ที่ต้องต่อสายเป็นสิบเส้นเมื่อไร ลองถามตัวเองก่อนว่าเขียนเอาแทนได้ไหมครับ