เอกสารประกอบการสอนวิชาวงจรดิจิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสขุ เอกสารอา งอิง Morris, M, Charl es, R.K. (2007). Logic and Com puter Design Fundam entals. New Jersey: Prentice-Hal l International Inc. Marcovit z, A. B. (2009). Introduction to Logic Design. New York: McGraw-Hil l . Mark, B. (2003). Com plete Digital Design: A Com prehensive Guide to Digital Electronics and Com puter System Architecture. New York: McGraw-Hil l . David, M. H. (2012).Digital Design and Com puter Architecture. USA: Morgan Kaufm ann. Ram aswam y, P. (2011). Digital System s Design. United Kingdom : London Business School . Morris, M, Michael , D. C. (2006). Digital Design. New Jersey: Prentice-Hal l Int ernational In c. ธวชั ชยั เลอื่ นฉวี และ อนุรกั ษ เถอ่ื นศิริ. (2527). ดิจติ อลเทคนิคเลม 1.กรงุ เทพฯ: มติ รนราการพิมพ. ธวัชชัย เลื่อนฉวี. (2532). ดิจิตอลเทคนิคเลม 2.กรุงเทพฯ: มิตรนราการพิมพ. มงคล ทองสงคราม. (2544).ทฤษฎีดจิ ิตอล.กรุงเทพฯ: หา งหนุ สว นจํากัด วี.เจ. พริ้นดิ้ง. ทีมงานสมารทเลริ น นิ่ง. (2543). ออกแบบวงจร Digital และประยกุ ตใ ชงาน.กรุงเทพฯ: หา งหุนสว น สามัญสมารทเลริ น น่งิ . สมชาย ชน่ื วฒั นาประณธิ ิ. (2535). ดิจติ อลอิเลก็ ทรอนกิ ส.จ. อุดรธาน:ี มหาวิทยาลยั ราชภฏั อดุ รธานี. 232
เอกสารประกอบการสอนวิชาวงจรดจิ ิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสุข แผนบริหารการสอนประจําบทที่ 12 วงจรแปลงสญั ญาณ 3 ชว่ั โมง หวั ขอ เนอ้ื หา 12.1 ออปแอมป 12.1.1 วงจรเปรียบเทยี บ 12.1.2 อินเวอรต งิ แอมปลิไฟเออร 12.2 การแปลงสญั ญาณดจิ ทิ ัลเปนสญั ญาณอนาลอก 12.2.1 วงจงแปลงสญั ญาณดจิ ทิ ัลเปนสัญญาณอนาลอก 12.3 การแปลงสญั ญาณอนาลอกเปนสญั ญาณดิจทิ ลั 12.3.1 วงจงแปลงสญั ญาณอนาลอกเปน สัญญาณดิจทิ ัล 12.4 บทสรปุ วตั ถปุ ระสงคเชงิ พฤตกิ รรม 1. เพอ่ื ใหผ เู รยี นมคี วามรคู วามเขา ใจเกยี่ วกบั ออปแอมปเ บอ้ื งตน และการนําออปแอมปม าประยกุ ตใช งานเปนวงจรแปลงสญั ญาณ 2. เพ่ือใหผ ูเรยี นมคี วามรูค วามเขาใจเกยี่ วกบั หลักการแปลงสัญญาณดจิ ิทลั เปน สญั ญาณอนาลอก และ สามารถออกแบบวงจรได 3. เพอ่ื ใหผ ูเรยี นมคี วามรูความเขา ใจเกยี่ วกบั หลกั การแปลงสญั ญาณอนาลอกเปนสญั ญาณดจิ ิทลั และ สามารถออกแบบวงจรได วธิ กี ารสอนและกจิ กรรมการเรยี นการสอนประจาํ บท 1. บรรยายเนื้อหาในแตล ะหัวขอ พรอ มยกตัวอยางประกอบ 2. ศกึ ษาจากเอกสารประกอบการสอน 3. ผสู อนสรุปเน้อื หา 4. ทําแบบฝก หดั เพื่อทบทวนบทเรยี น 5. เปด โอกาสใหผ ูเรยี นถามขอสงสยั 6. ผสู อนทําการซกั ถาม สื่อการเรียนการสอน 1. เอกสารประกอบการสอนวชิ าวงจรดิจิทลั และลอจกิ 2. ภาพเลื่อน การวดั ผลและการประเมนิ 1. ประเมนิ จากการซกั ถามในชนั้ เรยี น 2. ประเมินจากความรว มมือและความรับผดิ ชอบตอการเรยี น 3. ประเมินจากการทําแบบฝก หดั ทบทวนบทเรยี น 233
เอกสารประกอบการสอนวิชาวงจรดิจิทัลและลอจิก โดย อาจารย กฤษณพงศ สมสุข บทท่ี 12 วงจรแปลงสญั ญาณ เนื่องจากมีความเปนไปไดที่สัญญาณอินพุตของวงจรดิจิทัลอาจจะเปนสัญญาณแบบอนาลอก เชนคาอุณหภมู ิ หรือ คา ความเร็ว เปนตน ซง่ึ วงจรดจิ ทิ ัลไมส ามารถประมวลผลสัญญาณอินพุตท่เี ปน แบบอนาลอกได ดงั น้ันจึงตองมีวงจรที่ใชสําหรับแปลงสัญญาณอินพุตจากสัญญาณอนาลอกเปน สัญญาณดจิ ิทัลกอ นจึงจะสามารถนําสัญญาณดิจิทลั น้ีสงเปนอินพุตใหวงจรเพื่อนําไปประมวลตอ ไป โดยหลังจากที่วงจรดิจิทัลประมวลผลเสร็จเรียบรอยแลวคาสัญญาณเอาตพุตท่ีไดออกมาจะเปน สญั ญาณดิจทิ ัล อยา งไรก็ตามในการใชง านจรงิ กม็ คี วามเปนไปไดเ ชนกันท่ีจําเปนตองใชคาเอาตพุตที่ เปนสญั ญาณอนาลอก และในทางกลบั กนั วงจรอนาลอกบางชนิดอาจจะรับสัญญาณอินพุตแบบดิจทิ ัล ดังน้ันจึงตองมีวงจรที่ใชสําหรับการแปลงสัญญาณดิจิทัลเปนสัญญาณอนาลอกดวยเชนกัน โดย อปุ กรณทีส่ ามารถนาํ มาประยุกตใชส าํ หรับการแปลงสญั ญาณคือ ออปแอมป ในบทน้จี ะกลา วถงึ ออป แอมปเบื้องตน หลกั การแปลงสัญญาณ และวงจรแปลงสญั ญาณของท้งั สองโดยใชออปแอมป 12.1 ออปแอมป ออปแอมป คืออุปกรณทางอิเล็กทรอนิกสชนิดหน่ึงที่รับสัญญาณอินพุตเปนแบบอนาลอก ซ่ึง สามารถนาํ มาประยกุ ตใ ชส ําหรับสรางวงจรแปลงสัญญาณได โดยมีคณุ สมบัตทิ ่ีสาํ คญั 3 ประการ ดังน้ี มีอิมพิแดนซด า นอนิ พตุ สูง มอี ตั ราการขยายแรงดันสงู และ มีอิมพแิ ดนซดานเอาตพุตตา่ํ - + รปู ท่ี 12.1 สญั ลกั ษณข องออปแอมป จากรปู ที่ 12.1 แสดงใหเห็นวาสัญญาณของออปแอมปมีท้ังหมด 5 สัญญาณประกอบไปดวย สญั ญาณอินพุต 2 สญั ญาณ คือ A ซงึ่ ตอ เขา กับขาลบเรียกวา อนิ เวอรต งิ และ B ซ่ึงตอ เขา กบั ขาบวก เรยี กวา นอนอินเวอรตงิ แหลง จายไฟ 2 สญั ญาณซง่ึ เปน สญั ญาณบวก และสัญญาณลบ และสัญญาณ เอาตพุต 1 สญั ญาณ 12.1.1 วงจรเปรียบเทียบ จากรปู ท่ี 12.1 สามารถนําออปแอมปม าใชเปน ตวั เปรยี บเทยี บไดโดยทพ่ี จิ ารณาท่ีขาของ อนิ พตุ ทั้ง 2 คา โดยแบง ออกเปน 3 กรณี ดงั น้ี กรณีที่ 1: A > B, Z จะมีคาเปน -5V 234
เอกสารประกอบการสอนวิชาวงจรดจิ ิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสุข กรณีท่ี 2: A < B, Z จะมีคา เปน +5V กรณีท่ี 3: A = B, Z จะมคี า เปน 0V ตัวอยา งท่ี 12-1 จงหาคา แรงดนั ของ Z เมือ่ กําหนดให A = 3V และ B = 1V วธิ ีทาํ เน่ืองจาก แรงดนั ของ A มคี า มากกวาแรงดนั ของ B ดงั นน้ั Z = -5V อยา งไรกต็ ามหากนําออปแอมปมาใชเปนวงจรเปรียบเทียบ อาจกําหนดใหแรงดันท่ีเอาตพุตมี สถานะเปนบวก หรือลบเพยี งอยา งเดียวเทานนั้ เชน หากตอ งการใหส ถานะเอาตพ ุตมคี าเปน บวกเพยี ง อยางเดียวสามารถทําไดโดยตอ ขา –V ลงสายดนิ แทน ดังรปู ที่ 12.2 - + รปู ท่ี 12.2 วงจรเปรยี บเทยี บทสี่ ถานะเอาตพุตมีคา เปนบวกเทานน้ั จากรปู ท่ี 12.2 คา Z จะเหลือเพยี ง 2 สถานะเทา นั้น ดังนี้ กรณที ี่ 1: A B, Z จะมีคาเปน 0V กรณีท่ี 2: A < B, Z จะมคี า เปน +5V ในทางกลบั กนั หากตองการใหสถานะเอาตพตุ มีคา เปน ลบเพียงอยางเดยี วสามารถทาํ ไดโ ดยตอ ขา +V ลงสายดนิ แทน ซง่ึ สถานะเอาตพุตจะเหลือเพยี งสถานะท่ีเปน ลบเพยี งอยา งเดยี ว 12.1.2 อินเวอรต งิ แอมปลไิ ฟเออร อตั ราการขยายแรงดันของออปแอมปม คี า สงู ถงึ 200,000 เทา แตไมควรทําใหแรงดันที่ เอาตพตุ สงู เกนิ 80% ดงั น้นั การใชง านจรงิ จึงควรทําใหอ ตั ราการขยายแรงดนั ของออปแอมปม คี านอ ย กวา 200,000 เทา โดยการควบคุมอตั ราการขยายดว ยวิธกี ารปอ นกลบั ผานตัวตานทานที่ตกคอ มออป แอมประหวา งอินพุตและเอาตพตุ - + รูปท่ี 12.3 อินเวอรต ิงออปแอมป 235
เอกสารประกอบการสอนวิชาวงจรดจิ ิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสขุ จากรปู ที่ 12.3 อตั ราการขยายแรงดันของออปแอมปห าไดจาก V Vgain = out V in เม่ือ Vgain = อัตราการขยายแรงดัน Vout = แรงดนั ที่เอาตพ ตุ Vin = แรงดนั ท่ีอินพตุ โดยทคี่ า Vout สามารถหาไดจากสตู ร Vout = R Vf x in R in เมอื่ Rf = ตวั ตา นทานที่ตกคอมออปแอมปร ะหวา งอินพตุ และเอาตพุต Rin = ตัวตา นทานทตี่ อท่ีขาอินพุต 12.2การแปลงสัญญาณดิจทิ ัลเปน สัญญาณอนาลอก การแปลงสญั ญาณดิจทิ ัลเปนสัญญาณอนาลอก หรอื เรียกส้ันๆวา D/A คือการแปลงสัญญาณ อินพตุ ท่ีเปนแบบดิจทิ ัลใหเ ปนแรงดนั แบบอนาลอก ซงึ่ มลี กั ษณะคลายกับการแปลงจากเลขฐานสอง เปนเลขฐานสบิ น่ันเอง ยกตวั อยา งเชน สัญญาณ 00102 เมื่อแปลงเปนสัญญาณอนาลอกจะมีคาเปน 2V หรอื สัญญาณ 01012 เม่ือแปลงเปน สญั ญาณอนาลอกจะมีคาเปน 5V เปน ตน การคาํ นวณหาแรงดนั ทเ่ี ปนสัญญาณอนาลอกจากสัญญาณดจิ ทิ ัลสามารถทําไดดงั สมการตอไปนี้ Vout = K.D เม่อื Vout คือ แรงดนั อนาลอก D คอื รหสั สัญญาณดจิ ิทลั ท่เี กดิ จากการแปลงจากรหสั ฐานสองเปน เลขฐานสบิ K คือ คาคงท่ี ตัวอยางที่ 12-2 จงคํานวณแรงดันอนาลอก จากวงจร D/A ขนาด 8 บิตโดยอินพุตมีคาเปน 01010011 และคาคงทแ่ี รงดันอนาลอกมคี า เปน 10mV วธิ ีทาํ เน่อื งจากอนิ พตุ คอื 01010011 แปลงเปนเลขฐานสบิ ไดเปน 83 ดงั นนั้ จาก Vout = KD ได Vout = 10m V x 83 236
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสุข = 0.83V ตัวอยางที่ 12-3 จากวงจร D/ A ขนาด 8 บติ โดยอนิ พุตมคี า เปน 01100100 จะไดแรงดนั ออกมาเปน 4V จงคาํ นวณหาคาคงทแี่ รงดนั และคาแรงดันสูงสดุ ของวงจรนี้ วธิ ที าํ เนอ่ื งจากอนิ พตุ คือ 01100100 แปลงเปนเลขฐานสิบไดเ ปน 100 ดังนั้น จาก Vout = KD ได 4 = K x 100 K = 0.04V เนื่องจากอินพตุ มีขนาด 8 บติ ดังนั้นคา สงู สุดคือ 111111112 = 25510 จาก Vm ax = KDmax ได = 0.04 x 255 = 10.2V 12.2.1วงจงแปลงสญั ญาณดิจทิ ัลเปนสัญญาณอนาลอก 1 k 1 k 2 k - 4 k 8 k + รูปท่ี 12.4 ตวั อยา งวงจร D/ A ขนาด 4 บิต จากรปู ท่ี 12.4 แสดงตวั อยางวงจร D/ A ขนาด 4 บติ ซ่ึงมอี ินพุตประกอบดวย A, B, C และ D เน่อื งจากคานาํ้ หนกั จากบิตท่ีมลี ําดบั ความสําคญั ต่ําที่สุดเรยี งไปถงึ บิตท่ีมีลําดับความสําคัญสูงท่ีสุดมี คาเปน 1, 2, 4 และ 8 ดังน้นั คา R ที่นาํ มาตอ ทีต่ าํ แหนงบติ ที่มีลําดบั ความสําคัญตํ่าท่ีสุดจึงตองมีคา มากทีส่ ดุ และคา R ทน่ี ํามาตอท่ีตําแหนงบิตทมี่ ีลาํ ดบั ความสาํ คัญสูงที่สดุ จึงตองมคี า นอยท่ีสุด จึงทํา ใหทราบวาอินพุต A แทนบิตท่ีมีลําดับความสําคัญต่ําท่ีสุด และอินพุต D คือตําแหนงที่มีลําดับ ความสําคญั สงู ที่สุดโดยกาํ หนดใหเ มอื่ อนิ พุตแตละตวั ไดรับคา เปน 1 คือรับแรงดันขนาด 5V แตหาก ไดรับคา เปน 0 คอื ยงั ไมม ีแรงดนั ตัวอยางท่ี 12-4 จากรูป 12.4 จงหาคา Vout หากอนิ พตุ มีคาเปน 1010 วิธที าํ เน่ืองจากอนิ พุตมคี าเปน 1010 ความหมายคือ D = 1, C = 0, B = 1 และ A = 0 จงึ คํานวนหาคา กระแสจากแตละอนิ พุตไดดงั น้ี ID = VD/ RD = 5/ 1 k = 5 m A 237
เอกสารประกอบการสอนวชิ าวงจรดิจิทัลและลอจิก โดย อาจารย กฤษณพงศ สมสขุ IC = VC/ RC = 0/ 2 k = 0 m A IB = VB/ RB = 5/ 4 k = 1.25 m A IA = VA/ RA = 0/ 8 k = 0 m A จาก IRf = ID + IC + IB+ IA = 6.25 m A จึงคํานวณหา Vout ไดดังน้ี จาก Vout = IRf . Rf = 6.25 m A x 1 k = 6.25V วงจร D/A ดังรูปที่ 12.4 เรียกวา วงจรแปลงสัญญาณดิจิทัลเปนสัญญาณอนาลอกแบบตัว ตานทานเลขฐานสอง (Binary Weighted Resistor D/ A) อยางไรก็ตามยังมีวงจร D/ A อีกประเภท หนึ่งท่นี ิยมถกู นาํ มาใชง านเชน กัน ซึ่งจะนําตัวตานทาน 2 คามาตอสลับกันในรูปแบบซํ้าๆ เดิม ตาม จาํ นวนบิต เรียกวงจรลักษณะนี้วา วงจรชุดความตานทานข้ันบันได (R-2R Ladder Resistor D/A) โดยการเรียงจะอยูในรูปแบบของขั้นบันไดท่ีมีการแบงสัดสวนแรงดันขาออกอยางเปนลําดับขั้น คุณสมบัตขิ องวงจร R-2R Ladder คอื ระดับแรงดนั เอาตพ ตุ จะมีคาเทา กบั ผลรวมแรงดันอนิ พุตที่เปน รหสั เลขฐานสอง โดยคา แรงดนั อนิ พุตแตละตัวจะมคี าเปน -1 -2 -(n- 1) ซึ่งคาแรงดันน้ีเรยี งจากคา 2, 2 ,…,2 แรงดนั ของอินพตุ ท่ีมีลาํ ดบั ความสําคัญสงู ทีส่ ดุ ไปจนถงึ อินพุตท่ีมลี าํ ดับความสาํ คัญตา่ํ ท่ีสดุ รปู ท่ี 12.5 ตัวอยางวงจร D/ A แบบ R-2R Ladder ขนาด 4 บิต จากรูปที่ 12.5 แสดงตัวอยางวงจร D/ A แบบ R-2R Ladder ขนาด 4 บิต โดยอินพุต D เปน อินพตุ ท่มี ลี าํ ดบั ความสาํ คญั สงู ทีส่ ุดเรยี งไปจนถึงอนิ พุต A ซ่งึ เปนอินพตุ ที่มลี าํ ดับความสําคัญตํ่าที่สุด ดังน้ันคาแรงดันของอินพุต อินพุต อินพุต และอินพุต จึงมีคาเปน -1 -2 -3 และ -4 D C B A 2, 2, 2 2 ตามลาํ ดับ 12.3การแปลงสญั ญาณอนาลอกเปน สัญญาณดจิ ทิ ลั การแปลงสญั ญาณอนาลอกเปนสัญญาณดจิ ิทัล หรอื เรียกสั้นๆวา A/D คือการแปลงสัญญาณ อนิ พุตที่เปนแบบอนาลอกใหเปน สญั ญาณแบบดิจิทลั ซึง่ มีลกั ษณะคลา ยกับการแปลงจากเลขฐานสิบ เปน รหสั เลขฐานสองนัน่ เอง 238
เอกสารประกอบการสอนวิชาวงจรดจิ ิทัลและลอจิก โดย อาจารย กฤษณพงศ สมสขุ 12.3.1วงจงแปลงสัญญาณอนาลอกเปน สญั ญาณดจิ ทิ ลั - + รูปท่ี 12.6 ตวั อยางวงจร A/ D ขนาด 4 บติ จากรปู ที่ 12.6 แสดงตวั อยางวงจร A/ D เพ่อื แปลงเปนสัญญาณดจิ ิทลั ขนาด 4 บิตโดยมี Din เปน สญั ญาณอนิ พตุ แบบอนาลอก และ Q1 – Q4 เปน สญั ญาณเอาตพ ตุ แบบดิจทิ ัล โดยแบง การอธิบายการ ทาํ งานออกเปน 3 สว นไดด งั น้ี สวนที่ 1 ออปแอมป: ทําหนา ทเ่ี ปนวงจรเปรียบเทียบสัญญาณอนาลอกระหวาง เอาตพุตของ วงจร D/ A และ Din โดยท่ีหากสญั ญาณเอาตพ ตุ จาก D/ A มคี า มากกวาหรือเทากับ Din เอาตพุตของ ออปแอมปจะมคี า เปน 0 แตหากสัญญาณเอาตพ ตุ จาก D/A มีคา นอยวา Din เอาตพตุ ของออปแอมป จะมีคาเปน 1 สว นท่ี 2 ฟลิปฟลอปแบบ JK ทงั้ 4 ตวั : จากรปู สงั เกตไดวา คาเอาตพ ุตของออปแอมปถกู สง ไป เปน อนิ พุตให J1 และ K1 คา Q1 จึงถกู แบงออกเปน เพยี ง 2 กรณคี ือ หาก J1 = k1 = 0 คา Q1 จะคงคา เดมิ แตห าก J1 = k1 = 1 คา Q1 จะเกิดการกลับบิตจากคาเดิม สวนฟลิปฟลอปตัวอื่นๆทั้งหมดถูก กําหนดใหอนิ พุต J และ K มีคาเปน 1 ดงั นน้ั เอาตพตุ ของฟลิปฟลอปตัวที่ 2 – 4 จะเกดิ การกลับบิต เสมอหากไดรบั สญั ญาญนาฬิกา ซ่ึงสังเกตวาฟลิปฟลอปตัวที่ n ไดรับสัญญาณนาฬิกาจากเอาตพุต ของฟลิปฟลอปตัวที่ n-1 เมื่อ n = 2, 3, 4 ดังน้ันการตอใชงานฟลิปฟลอปลักษณะนี้เปรียบเสมือน วงจรนับน่ันเอง โดยจะทาํ การนับไปเรอ่ื ยๆ หากเอาตพตุ ของออปแอมปมีคาเปน 1 และหยุดนับเม่ือ เอาตพุตของออปแอมปมคี า เปน 0 เนื่องจาก Q1 คงคา เดิม จึงไมเกิดสัญญาณนาฬิกาท่ี Q2, Q3 และ Q4 สว นท่ี 3 วงจร D/ A: รบั สัญญาณอนิ พตุ จาก Q1, Q2, Q3 และ Q4 เพื่อที่จะแปลงเปนสัญญาณ อนาลอกเพื่อนําไปเปรยี บเทยี บกับ Din เมือ่ รวมทัง้ 3 สวนสรปุ การทํางานไดดงั นี้ เมอ่ื มเี กิดสัญญาณ Reset จะทําใหเอาตพุตของฟลิป ฟลอปท้งั 4 ตวั มีคาเปน 0 ทงั้ หมด และวงจรจะเรม่ิ นบั ขน้ึ ทลี ะ 1 จนกระทงั่ เอาตพ ุตของวงจร D/A มี คา เทา กับ Din วงจรจึงจะหยดุ นับ และไดผ ลลพั ธซึ่งเปนสัญญาณดิจิทัลคือ Q1, Q2, Q3 และ Q4 239
เอกสารประกอบการสอนวชิ าวงจรดิจิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสขุ 12.4 บทสรุป วงจรแปลงสัญญาณ คือ วงจรท่ีทําใหร ะบบดจิ ิทัลสามารถสอื่ สารกบั อุปกรณอิเล็กทรอนิกสที่รับ สัญญาณเปน แบบสัญญาณอนาลอกได โดยวงจรแปลงสญั ญาณแบง ออกเปนสองประเภทคือวงจรการ แปลงสญั ญาณดจิ ิทัลเปน สญั ญาณอนาลอก หรอื เรียกสั้นๆวา D/A คือการแปลงสญั ญาณอินพุตทเ่ี ปน แบบดิจิทัลใหเปนแรงดันแบบอนาลอก (มีลักษณะคลายกับการแปลงจากรหัสเลขฐานสองเปน สญั ญาณท่อี ยูใ นรูปแบบของเลขฐานสิบ) และวงจรแปลงสัญญาณอนาลอกเปนสัญญาณดิจิทัล หรือ เรียกส้ันๆวา A/D คือการแปลงสัญญาณอินพุตที่เปนแบบอนาลอกใหเปนสัญญาณแบบดิจิทัล (มี ลักษณะคลา ยกบั การแปลงสญั ญาณท่เี ปน เลขฐานสบิ ใหอ ยใู นรูปของรหัสเลขฐานสอง) 240
เอกสารประกอบการสอนวชิ าวงจรดิจิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสุข คําถามทา ยบท 1. วงจรแปลงสญั ญาณมีประโยชนอยางไร 2. วงจร D/ A และ A/D คอื อะไร มคี วามแตกตา งกนั อยางไร 3. จากรูปที่ 12.1 จงหาคา แรงดนั ของ Z เม่ือ 3.1 กาํ หนดให A = 1V และ B = 3V 3.2 กาํ หนดให A = 4V และ B = 2V 4. จงคํานวณแรงดันอนาลอก จากวงจร D/A ขนาด 8 บิตโดยอนิ พตุ มีคาเปน 01001101 และคา คงที่ แรงดันอนาลอกมคี าเปน 10mV 5. จากวงจร D/ A ขนาด 8 บติ โดยอนิ พตุ มคี า เปน 01101110 จะไดแ รงดนั ออกมาเปน 5V จง คาํ นวณหาคา คงที่แรงดัน และคาแรงดันสงู สดุ ของวงจรนี้ 241
เอกสารประกอบการสอนวิชาวงจรดิจิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสขุ เอกสารอา งอิง Morris, M, Charl es, R.K. (2007). Logic and Com puter Design Fundam entals. New Jersey: Prentice-Hal l International Inc. Marcovit z, A. B. (2009). Introduction to Logic Design. New York: McGraw-Hil l . Mark, B. (2003). Com plete Digital Design: A Com prehensive Guide to Digital Electronics and Com puter System Architecture. New York: McGraw-Hil l . David, M. H. (2012).Digital Design and Com puter Architecture. USA: Morgan Kaufm ann. Ram aswam y, P. (2011). Digital System s Design. United Kingdom : London Business School . Morris, M, Michael , D. C. (2006). Digital Design. New Jersey: Prentice-Hal l Int ernational In c. ธวชั ชยั เลื่อนฉวี และ อนุรกั ษ เถ่ือนศิริ. (2527). ดิจติ อลเทคนิคเลม 1.กรงุ เทพฯ: มิตรนราการพิมพ. ธวัชชัย เลื่อนฉวี. (2532). ดิจิตอลเทคนคิ เลม 2.กรุงเทพฯ: มิตรนราการพิมพ. มงคล ทองสงคราม. (2544).ทฤษฎีดจิ ติ อล.กรุงเทพฯ: หา งหนุ สว นจํากัด วี.เจ. พริ้นดิ้ง. ทีมงานสมารทเลริ น นิ่ง. (2543). ออกแบบวงจร Digital และประยกุ ตใ ชงาน.กรุงเทพฯ: หา งหุนสว น สามัญสมารทเลริ น น่งิ . สมชาย ชน่ื วฒั นาประณธิ ิ. (2535). ดิจิตอลอิเลก็ ทรอนกิ ส.จ. อุดรธาน:ี มหาวิทยาลยั ราชภฏั อดุ รธานี. 242
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทัลและลอจิก โดย อาจารย กฤษณพงศ สมสขุ แผนบรหิ ารการสอนประจําบทท่ี 13 ภาษา VHDL เบอื้ งตน 6 ชัว่ โมง หวั ขอ เนอ้ื หา 13.1 บทนาํ 13.1.1 ไลบราลี่ 13.1.2 เอน็ ตติ ้ี 13.1.3 อาชเิ ทคเชอร 13.1.4 แพ็กเกจ 13.1.5 คอมฟก กรเู รช่ัน 13.2 การตงั้ ชือ่ ตวั แปร 13.3 ชนดิ ขอ มลู 13.3.1 ชนดิ ขอ มลู BIT 13.3.2 ชนดิ ขอ มลู BIT_VECTOR 13.3.3 ชนดิ ขอ มลู STD_LOGIC 13.3.4 ชนดิ ขอมลู STD_LOGIC_VECTOR 13.3.5 ชนดิ ขอมลู INTEGER 13.3.6 ชนดิ ขอมลู อนื่ 13.4 ตวั ดําเนินการทางตรรกะ 13.5 สญั ญาณ 13.6 คา คงท่ี 13.7 คําส่ังเชงิ ลําดบั 13.8 คําสง่ั เงอ่ื นไข 13.8.1 คาํ ส่งั When – Else 13.8.2 คําสงั่ With - Select 13.8.3 คําสงั่ If - Else 13.8.4 คาํ สั่ง Case - When 13.9 การสรางสญั ญาณนาฬกิ า 13.10 บทสรปุ วัตถุประสงคเ ชงิ พฤตกิ รรม 1. เพ่ือใหผ ูเ รยี นมคี วามรคู วามเขา ใจเกยี่ วกบั การเขยี นโปรแกรมภาษาบรรยายฮารด แวรด ว ยภาษา VHDL เบื้องตน วธิ กี ารสอนและกจิ กรรมการเรยี นการสอนประจาํ บท 1. บรรยายเนอื้ หาในแตล ะหวั ขอ พรอมยกตวั อยางประกอบ 2. ศึกษาจากเอกสารประกอบการสอน 243
เอกสารประกอบการสอนวิชาวงจรดจิ ิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสุข 3. ผูสอนสรปุ เนื้อหา 4. ทาํ แบบฝก หดั เพ่ือทบทวนบทเรยี น 5. เปด โอกาสใหผ ูเรยี นถามขอสงสยั 6. ผสู อนทาํ การซกั ถาม ส่อื การเรยี นการสอน 1. เอกสารประกอบการสอนวชิ าวงจรดิจิทลั และลอจิก 2. ภาพเลอ่ื น การวัดผลและการประเมนิ 1. ประเมนิ จากการซักถามในชัน้ เรยี น 2. ประเมนิ จากความรวมมอื และความรบั ผดิ ชอบตอ การเรยี น 3. ประเมินจากการทาํ แบบฝกหดั ทบทวนบทเรียน 244
เอกสารประกอบการสอนวิชาวงจรดจิ ิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสุข บทที่ 13 ภาษา VHDL เบื้องตน การออกแบบวงจรดิจทิ ลั ในบททผ่ี า น ๆ มาเปนการออกแบบวงจรโดยใชว ิธีของการวาดผังวงจร ข้ึนมาเอง ซงึ่ เปนวิธีที่ไมเ หมาะสมในกรณีทีต่ อ งออกแบบวงจรที่มีขนาดใหญ การออกแบบวงจรดวย การใชภาษาระดับสูง เปนวิธีการออกแบบวงจรดิจิทัลโดยใชวธิ ีของการเขียนโปรแกรมเพ่ือจําลองการ ทํางาน ซ่ึงสามารถพฒั นาไดงา ย เน่อื งจากรปู แบบของคําสง่ั ตางๆ เปนภาษาท่ีมนุษยอ านไดเขาใจได งาย ดังนั้นการใชภาษาระดับสูงในการออกแบบวงจรดิจิทัลที่มีขนาดใหญจึงเปนวิธีท่ีเหมาะสม มากกวาหากเปรียบเทียบกับวิธีของกาวาดผังวงจรขึ้นใชงานเอง สําหรับบทนี้จะกลาวถงึ การเขียน โปรแกรมระดับสงู เพ่ือใชส าํ หรบั การออกแบบวงจรดจิ ิทัลดว ยภาษา VHDL เบอื้ งตน 13.1 บทนาํ ภาษา VHDL ยอ มาจาก VHSIC Hardware Description Language เปนภาษาท่ีใชส ําหรบั การ ออกแบบทางดา นฮารดแวร ประเภทหนงึ่ ซึง่ ถูกพัฒนาโดยกระทรวงกลาโหมของประเทศสหรฐั อเมรกิ า และไดรับการปรับปรุงเพื่อใหเปนมาตรฐานโดย IEEE โดยมี IEEE Std 1076 (VHDL87) เปน มาตรฐานตัวแรกที่มีการใชงาน และไดมีการปรับปรุงเรอ่ื ยมา โดยภาษานี้จะแตกตางกับโปรแกรม ภาษาอื่นๆ เชน ภาษา C, C++ หรือ Java เปนตน ตรงที่ภาษา VHDL จะเปนภาษาที่ประมวลผล คําส่ังทุกคําส่ังไปพรอมๆ กัน (Concurrence Statement) ในขณะท่ีโปรแกรมภาษาอ่ืน ๆ จะ ประมวลผลคาํ สงั่ แตล ะคาํ ส่งั เปน ลําดับ (Sequential Statement) โดยภาษา VHDL จะมองตวั อักษร ภาษาอังกฤษตวั พิมพเ ล็ก และตัวอกั ษรพิมพใหญเ ปน ตวั เดยี วกนั (Case Insentitive) โครงสรางของ VHDL เปน ดังน้ี 13.1.1 ไลบรารี่ (Library) เปนสว นทใี่ ชสําหรับเก็บคําสั่ง หรือตัวดําเนินการตาง ๆ ท่ีสามารถนํามาใชงานไดตาม มาตรฐาน IEEE โดยจะอยสู ว นบนสุดของโปรแกรม มโี ครงสรางเปนดังน้ี LIBRARY library_nam e; USE library_nam e.package_nam e.item รปู ท่ี 13.1 โครงสรางไลบรารี่ จากรปู ที่ 13.1 Library_name คอื ช่อื ของไลบรารี่ที่เกบ็ แพก็ เกจ โดยจะขึ้นตน ดว ย “ IEEE” package_name คือ ชอื่ แพก็ เกจ item คือ จํานวนของขอมูลที่อยูภายในแพ็กเกจท่ีตองการนํามาใชงานภายใน โปรแกรมหลกั ซง่ึ หากตอ งการนาํ มาใชงานทงั้ หมดใหประกาศในสวนของ item เปนคาํ วา “ all” 245
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสุข 13.1.2 เอ็นตติ ี้ (Entity) เปน สว นที่ใชสาํ หรบั การบอกจํานวนอนิ พุต และจํานวนของเอาตพุตท้ังหมดท่ีจาํ เปนตอ ง ใชภายในวงจรโดยยงั ไมไดมกี ารออกแบบวงจรแตอ ยา งไร มีโครงสรา งเปน ดังนี้ Entity entity_name IS PORT(inp ut_name1: IN Datatype; input_nam e2: IN Dat at ype; input_nam en: IN Dat at ype; outp ut_nam e1: IN Datatype; outp ut_nam em: OUT Datatype); End entity_name; รูปท่ี 13.2 โครงสรา งเอ็นตติ ี้ จากรูปที่ 13.2 entity_name คือ ชอื่ ของเอน็ ตติ ้ี โดยจะตอ งมชี ่ือเดยี วกับ entity_name ทีอ่ ยู หลังคําวา End input_name1, input_name2 และ input_namen คอื ขอมูลอนิ พุตของวงจรซงึ่ จะมกี ่ี ตัวก็ได IN คือ สว นทอ่ี ยตู อ จากชอื่ ของขอมูลอนิ พตุ และเครอื่ งหมาย “ :” เพอ่ื ใหร วู า ขอมูลนเ้ี ปน ขอ มูลอินพุต OUT คือสว นท่ีอยตู อจากชือ่ ของขอมูลเอาตพ ตุ และเครอ่ื งหมาย “ :” เพื่อใหรวู า ขอมูลน้ี เปนขอมูลเอาตพตุ Datatype คอื ชนิดขอ มลู ของสญั ญาณ โดยหากอนิ พุต หรือ เอาตพ ตุ ท่มี มี ากกวา 1 ตัว มี Datatype ชนิดเดียวกันสามารถประกาศสัญญาณเหลาน้ันในบรรทัดเดียวกันไดโดยใช “ ,” คั่น สัญญาณแตละตัว ตวั อยา งที่ 13-1 จงเขยี นคาํ สัง่ ในสว นเอ็นตติ ี้เพ่ือออกแบบวงจร Z = A.B วิธที าํ จากโจทยม ีอนิ พตุ 2 ตัว และเอาตพ ตุ 1 ตวั จึงมีเอน็ ตติ เ้ี ปน ดังน้ี Entit y EX_01 IS PORT(A: IN BIT; B: IN BIT; Z : OUT BIT); End EX_01; อินพุต 2 ตวั มชี ่ือ คือ A และ B และเอาตพ ุต 1 ตัวมชี อื่ คือ Z ทั้งหมดมชี นดิ ขอมลู เปน แบบ BIT (ชนดิ ขอ มลู แบบ BIT คือ ชนดิ ขอ มลู ทม่ี สี ถานะสําหรบั ใชงานคอื 0 หรอื 1) และมีเอน็ ตติ ช้ี ือ่ EX_01 246
เอกสารประกอบการสอนวิชาวงจรดิจิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสุข 13.1.3 อาชิเทคเชอร (Architecture) เปน สว นทใ่ี ชสาํ หรบั การออกแบบสว นทใี่ ชเ ขยี นบรรยายพฤติกรรมการทํางานของวงจร จากขอ มูลอนิ พุต และเอาตพุตทีม่ าจากสว นของเอ็นตติ ้ี ซงึ่ มีโครงสรางเปน ดงั น้ี ARCHITECTURE architecture_nam e of entity_nam e IS Signal, Constant, typ e, subprogram and com p onent d e cl arat ions Begin … End architecture_name; รปู ที่ 13.3 โครงสรา งอาชเิ ทคเชอร จากรูปท่ี 13.3 architecture_name คือ ช่ือของอาชิเทคเชอร ซึ่งจะตองมีชื่อเดียวกันกับ architecture_name ที่อยหู ลัง End ดว ย entity_name คือ ชอ่ื ของ entity ซึง่ จะตอ งมีชื่อเดียวกันกบั ช่ือของ เอ็นติตีท้ อี่ ยใู นสวน ของเอน็ ติต้ี สวนที่อยูใต ARCHITECTURE และ อยูเหนือ Begin คือการประกาศสัญญาณ คาคงที่ หรือ โปรแกรมยอยไวใชงานซง่ึ จะมหี รอื ไมก ไ็ ดข น้ึ อยกู บั การใชงาน หากมีการใชงานแตละตัวแปรตองปด ทา ยดว ยเคร่อื งหมาย “ ;” เสมอ การออกแบบสวนทใ่ี ชเขยี นบรรยายพฤติกรรมการทํางานของวงจรจะเขียนอยูระหวาง Begin และ End เสมอ โดยรปู แบบของการกาํ หนดสถานะใหเอาตพ ตุ เปน ดงั น้ี กรณที ี่ 1: กาํ หนดคาคงทใี่ หเอาตพุต รูปแบบ: ขอ มูลเอาตพ ตุ <= ‘ คา คงท่ี’ ; เชน : Z <= ‘ 1’ ; ความหมายคือ กาํ หนดใหส ัญญาณ Z มสี ถานะเปน 1 กรณีที่ 2: กําหนดสถานะอนิ พุตใหเอาตพ ตุ รูปแบบ: ขอ มลู เอาตพ ตุ <= ขอมลู อนิ พุต; เชน : Z <= A; ความหมายคอื กาํ หนดใหสญั ญาณ Z มีสถานะเหมอื นสญั ญาณ A กรณีท่ี 3: กาํ หนดสถานะนิเสธของอินพุตใหเ อาตพตุ รปู แบบ: ขอ มูลเอาตพุต <=not ขอ มูลอนิ พุต; เชน : Z <= not A; ความหมายคือ กาํ หนดใหสญั ญาณ Z มสี ถานะตรงขา มกบั สัญญาณ A กรณที ่ี 4: กาํ หนดสถานะของผลการดาํ เนินการระหวางอินพตุ ใหเอาตพ ตุ รปู แบบ: ขอ มลู เอาตพตุ <= ขอ มลู อนิ พตุ 1 ตวั ดาํ เนนิ การ ขอ มลู อนิ พตุ ท2ี่ ; เชน: Z <= A and B; 247
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสุข ความหมายคอื กําหนดใหส ญั ญาณ Z = AB ตัวอยา งที่ 13-2 จงเขยี นคําสั่งในสวนอาชเิ ทคเชอรเพือ่ ออกแบบวงจรจากตัวอยา งที่ 13-1 วิธที าํ เนอื่ งจากตัวอยา งที่ 13-1 ไดอ อกแบบโครงสรางของเอ็นตติ ้ไี วแลว จงึ ออกแบบวงจรในสว นของ อาชเิ ทคเชอรไดด งั นี้ ARCHITECTURE archit ecture_EX01 of EX_01 IS Begin Z <= A and B; End architecture_EX01; อาชิเทคเชอรมีช่ือ architecture_EX01 สวนเอ็นติตี้จะตองมีชื่อ EX_01 เสมอซึ่งเปนชื่อ เดียวกันกบั ชื่อของเอ็นตติ ที้ อ่ี ยใู นตัวอยางที่ 13-1 โดยการเขียนคําสง่ั Z = AB ดว ยภาษา VHDL เปน ดงั น้ี Z <= A and B; 13.1.4 แพก็ เกจ (Package) แพ็จเกต คือสวนทีใ่ ชสาํ หรบั เก็บขอมูลตาง ๆ หรือโปรแกรมยอยซึ่งสวนใหญแลว จะเปน ขอมูลที่มีการเรียกใชงานบอยคร้ัง หรือมีการเรียกใชงานจากหลายสวนของโปรแกรม โดยใน โปรแกรมหลักจะมีการเรยี กใชงานแพ็กเกจหรอื ไมมกี ไ็ ด โครงสรางของแพก็ เกจเปน ดงั น้ี PACKAGE p ackage_nam e IS Signal, Constant, type and comp one nt d eclarations End package_nam e; PACKAGE BODY package_name IS Signal, Constant, type, com ponent and Sub program declarations End package_nam e; รูปท่ี 13.4 โครงสรางแพก็ เกจ จากโครงสรางของแพ็กเกจแบง ออกเปน 2 สวนคอื สว นของการประกาศแพ็กเกจซ่งึ จะใช สําหรบั ประกาศสญั ญาณ หรอื คาคงท่ตี า ง ๆ โดยท่ีหากมีการสรา งแพ็กเกจข้ึนมาใชง านจะตอ งมสี วนนี้ เสมอ และสว นท่ี 2 คือ แพก็ เกจบอด้ี คือสวนของคาํ สั่งตางๆ ที่ใชบรรยายการทํางานของโปรแกรม ยอ ยซง่ึ จะมีการทํางานเปน แบบเชิงลาํ ดับ โดยสัญญาณ หรือคา คงทตี่ าง ๆ ท่ปี ระกาศภายในแพจ็ เกจ บอด้ี จะตอ งประกาศไวในสว นของการประกาศแพก็ เกจดว ยเสมอ โดยหากมีการประกาศแพ็กเกจขึ้น ใชง านจะมแี พก็ เกจบอดห้ี รือไมกไ็ ด หากมกี ารเรยี กใชงานแพก็ เกจจากโปรแกรมหลกั จะตองมีการใชคําสง่ั ดังน้ี 248
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสขุ USE l ibrary_nam e.package_nam e.item ; Library_name คือ ชือ่ ของไลบราร่ีทเี่ ก็บแพก็ เกจ โดยสว นใหญแลวแพ็กเกจที่ผูเขียนสรางขึ้น เองจะถกู เก็บไวในไลบรารชี่ ่ือ “ work” package_name คอื ชอื่ แพ็กเกจ item คือ จํานวนของขอ มลู ท่อี ยภู ายในแพ็กเกจท่ีตองการนาํ มาใชง านภายในโปรแกรมหลัก ซ่ึง หากตอ งการนาํ มาใชงานทั้งหมดใชป ระกาศในสวนของ item เปน คําวา “ all” 13.1.5 คอนฟก กรเู รชนั่ (Configuration) ในกรณีที่ตองการสรางอาชิเทคเชอรไวมากกวา 1 อาชิเทคเชอรเพื่อไวใชสําหรับการ จาํ ลองการทาํ งานของเอ็นตติ ี้ จําเปนตอ งมกี ารเขียนคอนฟกกรูเรช่ันไวเ พ่ือเลือกใชง านอาชเิ ทคเชอรท ี่ ตอ งการ 13.2 การตั้งชือ่ แปร การต้ังช่อื ตัวแปรสัญญาณ หรือคาคงท่ีตาง ๆ เพ่ือไวใชงานจะตองต้ังตามขอกําหนดตอไปน้ี เทานัน้ ซ่งึ หากไมต ้ังตามที่กาํ หนดไวจ ะเกิดขอ ผดิ พลาดของโปรแกรมข้ึน 1. ช่อื ตวั แปรจะตองประกอบดวย ตัวอักษร ตัวเลข หรอื เสนใต เทานั้น 2. กรณที ช่ี อื่ ตัวแปร 1 ตัวแปรมีมากกวา 1 ตวั อักษรจะตองเขียนติดกัน หา มมีชอ งวาง 3. ไมสามารถใชเครื่องหมายขดี เสน ใตติดกนั หลายตัว และไมสามารถจบดวยเคร่ืองหมายขีด เสน ใต 4. หา มใชค าํ สงวนท่ีมอี ยใู นภาษา VHDL ดังน้ี รูปท่ี 13.5 คาํ สงวนในภาษา VHDL ท่ีมาของภาพ: http:/ / hep.uchicago.edu/ ~tangjian/ SVT_sub/ FTK_ATLAS/ AUX/ vhdl - t u t o rial .p df 13.3 ชนิดขอ มูล ขอมูลท่ีตองใชงานในภาษา VHDL มอี ยูหลายชนิด ซึ่งแตละชนิดจะมีความแตกตางกันออกไป ดงั นี้ 249
เอกสารประกอบการสอนวิชาวงจรดจิ ิทัลและลอจิก โดย อาจารย กฤษณพงศ สมสุข 13.3.1ชนดิ ขอ มลู BIT: เปน ชนดิ ขอมลู พ้นื ฐานที่ใชสําหรบั กาํ หนดเปนสถานะของขอมูลอินพุต หรือขอมูลเอาตพ ตุ ซ่งึ ประกอบดวย 2 สถานะคือ 0 หรือ 1 13.3.2ชนิดขอมูลแบบ BIT_VECTOR: เปน ชนิดขอมลู แบบ BIT ท่ใี ชเ ก็บขอ มลู ใหก บั ตวั แปร 1 ตัวแปรที่มีขนาดมากกวา 1 บิต ซ่ึงสามารถกําหนดได 2 แบบคือแบบท่ี 1 เรียงจากบิตท่ีมีลําดับ ความสาํ คัญสงู ทีส่ ดุ ไปยังบิตท่ีมีลําดับความสําคัญตํ่าทสี่ ดุ โดยใช “ downto” และแบบท่ี 2 เรียงจาก บิตที่มีลาํ ดับความสําคญั ต่ําท่ีสดุ ไปยังบิตท่มี ีลําดบั ความสําคญั สงู ทีส่ ุดโดยใช “ to” ตวั อยางการใชง าน เปน ดังนี้ แบบท่ี 1 (ใช downto): signal a: BIT_VECTOR (3 downto 0) := “ 1101” ; ความหมายคือ กําหนดใหสัญญาณ a มีขนาด 4 บิตและมคี าเร่มิ ตน เปน “ 1101” (a3 = 1, a2 = 1, a1 = 0 และ a0 = 1) แบบที่ 2 (ใช to): signal a: BIT_VECTOR (0 to 3) := “ 1101” ; ความหมายคือ กําหนดใหส ัญญาณ a มีขนาด 4 บิตและมคี าเร่มิ ตน เปน “ 1101” (a0 = 1, a1 = 1, a2 = 0 และ a3 = 1) 13.3.3ชนิดขอมูล STD_LOGIC: คือ ชนิดขอมูลท่ีใชสําหรับกําหนดเปนสถานะของขอมูล อินพุต หรอื ขอ มูลเอาตพ ตุ เชนเดียวกับชนิดขอมูลแบบ BIT แตสามารถเกบ็ สถานะไดมากกวา โดย สถานะทช่ี นิดขอ มลู แบบ STD_LOGIC สามารถเก็บไดเปนดังน้ี ‘ U’ คือUninitial ized ‘ X’ คอื Unknown ‘ 0’ คือ สถานะ 0 ‘ 1’ คือ สถานะ 1 ‘ Z’ คอื High impedance ‘ W’ คือ Weak unknown ‘ L’ คอื Weak low ‘ H’ คือ Weak high ‘ -’ คือ Don’ t care 13.3.4ชนดิ ขอ มลู STD_LOGIC_VECTOR: คือ ชนดิ ขอ มลู ทใ่ี ชสาํ หรับกาํ หนดเปน สถานะของ ขอ มูลอนิ พตุ หรือขอ มลู เอาตพตุ ที่มขี นาดมากกวา 1 บติ เชนเดียวกับชนิดขอมูลแบบ BIT_VECTOR แตสามารถเกบ็ สถานะไดมากกวา โดยสถานะทช่ี นิดขอมลู แบบ STD_LOGIC_VECTOR จะเหมอื นกบั STD_LOGIC 13.3.5ชนิดขอมูล INTEGER: คือ จํานวนเต็มท่ีมีขนาดระหวาง -2,147,483,647 – +2,147,483,647 ซง่ึ เปชนิดขอ มูลทสี่ ามารถใชใ นการคาํ นวณได เชน การบวก ลบ คูณ หรอื หารเปน ตน 13.3.6ชนิดขอ มลู อื่น นอกจากชนิดขอมูล 5 ชนิดที่กลาวขางตนแลว ภาษา VHDL ยังมีชนิด ขอ มลู อืน่ ๆ ใหใชงานไดอ กี เชน REAL (จาํ นวนจริง) BOOLEAN (ตรรกศาสตร) TIME (เวลา) STRING (ตวั อักษร) เปนตน 250
เอกสารประกอบการสอนวิชาวงจรดจิ ิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสขุ 13.4 ตัวดาํ เนินการทางตรรกะ ตัวดําเนนิ การทางตรรกะคือตัวดําเนินการที่ใชในการคํานวณหาสถานะของเอาตพุตของวงจร ดิจิทลั จากความสมั พันธข องขอมูลอนิ พุตมที ง้ั หมด 7 ตวั ดังน้ี ตารางที่ 13.1 ตัวดาํ เนนิ การทางตรรกะ ประเภทตวั ดําเนนิ การ รูปแบบคําสั่ง ตัวอยางการใชง าน แอนด ออร an d z <= a and b; นอ็ ต or z <= a or b; แนนด not z <= not a; นอร n an d z <= a nand b; เอก็ ออร nor z <= a nor b; เอ็กนอร xo r z <= a xor b; xnor z <= a xnor b; 13.5 สญั ญาณ (Signal) สญั ญาณ คือ ตัวแปรทท่ี าํ หนาทใี่ นการสงผานขอ มลู ตัวอยางเชนสญั ญาณจะนําเอาตพุตท่ไี ดจ าก อปุ กรณอ เิ ล็กทรอนิกสต ัวหน่ึงไปเปนอินพุตใหกับอุปกรณอิเล็กทรอนิกสอีกตัวหน่ึง ดังตัวอยางรูปที่ 13.4 รปู ที่ 13.6 ตัวอยางสญั ญาณ จากรปู ที่ 13.6 เอาตพ ุตท่ีไดจากแอนดเกต (X) ถูกสง ไปเปน อินพตุ ใหก บั ออรเ กต แสดงวา X เปนตวั แปรสญั ญาณ รูปแบบการเขยี นสญั ญาณเปนดงั น้ี รปู แบบ: signal signal _name: Datatype := initial _value; โดยที่ signal_name คอื ช่ือสัญญาณ initial_value คอื คาเร่มิ ตน ของสญั ญาณ โดยในสว นน้ีจะมกี ารกาํ หนดหรอื ไมก็ได 251
เอกสารประกอบการสอนวิชาวงจรดิจิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสุข ตัวอยางที่ 13-3 การออกแบบวงจรรปู 13-4 ดว ยภาษา VHDL โดยใชต ัวแปรสญั ญาณ Entity EX_03 is Port ( a, b, c : in BIT; Z : out BIT); end EX_03; architecture Behavioral of EX_03 is signal x: BIT; begin x <= a and b; z <= x or c; end Behavioral; 13.6 คา คงท่ี (Constant) คาคงที่ คือตัวแปรที่เม่ือถูกสรางขึ้นมาแลวตองมีการกําหนดคาใหกับตวั แปรนั้นทันทีและไม สามารถเปลย่ี นแปลงคา ใหกบั ตวั แปรน้ไี ดในภายหลัง มีรูปแบบเปน ดังน้ี รูปแบบ: constant constant_name: Datatype := value; โดยท่ี signal_name คอื ชอ่ื สัญญาณ value คอื คา คงทีท่ ต่ี องกาํ หนดใหต ัวแปร 13.7 คําสั่งเชงิ ลําดบั (Sequential statement) การเขียนโปรแกรมดวยภาษา VHDL มีลักษณะการทาํ งานเปนแบบขนานคือแตละคําส่ังจะ ทํางานไปพรอ มกนั อยางไรก็ตามสามารถกําหนดใหภาษา VHDL มีการทํางานเปนลําดับไดโดยการ เขียนคําสั่งท่ีตองการใหมีการทํางานเปน ลาํ ดบั ไวภายในโปรเซส (Process) ซ่ึงเปนคาํ ส่ังทมี่ กี ารทาํ งาน เปนแบบขนาน แตคําสั่งท่ีอยูภายในโปรเซสจะมีการทํางานแบบลําดับโดยโปรเซสจะถูกเขียนไว ภายในอาชิเทคเชอร มีโครงสรา งเปน ดงั น้ี Process_nam e: Process(input1, input2,…,input n) variabl evariable_nam e: Datatype := intial _value; Begin Sequential _st atem ent 1; Sequential _st atem ent 2; End Process; รูปที่ 13.7 โครงสรา งโปรเซส 252
เอกสารประกอบการสอนวชิ าวงจรดิจิทัลและลอจิก โดย อาจารย กฤษณพงศ สมสขุ จากรปู ท่ี 13.7 Process_name: คอื ชอ่ื ของ Process ซงึ่ จะมหี รือไมกไ็ ด Input1, input2,…,inputn คือ จํานวนอินพุตท้ังหมดท่ีตองใชงานภายในโปรเซสและสง ผล โดยตรงตอผลลพั ธภาย ในโปรเซส โดยอนิ พุตแตละตวั จะถกู ค่ันดว ย “ ,” Variable_name คอื ตัวแปรวารเิ อเบอร ซ่ึงเปนตวั แปรแบบโลคอล (Local Variable) ซงึ่ จะถกู ใชงานอยูภายในโปรเซสเทานั้น การใชงานจะคลายกับตัวแปรสัญญาณ แตกตางกันตรงที่ตัวแปร สัญญาณจะมกี ารปรับปรุงขอมูลอยูภายนอกโปรเซส แตตัวแปรวาริเอเบอรจะมีการปรับปรุงขอมูล ภายในโปรเซส การกาํ หนดสถานะของผลการดาํ เนนิ การระหวา งอินพตุ ใหเอาตพุตท่ีเปนตัวแปรอาริเอเบอรจะ ใช “ :=” ซึง่ แตกตางกับการกาํ หนดคา ใหตัวแปรสัญญาณท่ีใช “ <=” รปู แบบ: เอาตพ ตุ := สญั ญาณอินพุต คําสงั่ เชงิ ลาํ ดบั จะถูกเขยี นไวภ ายในท่อี ยรู ะหวา ง Begin และ End โดยทีค่ าํ สั่งที่ถูกเขียนกอ นจะ ถูกประมวลผลกอน ซึ่งจากรูปที่ 13.5 Sequential_statement1 ถูกเขียนกอน Sequential statement2 ดังน้นั Sequential_statement1 จะถูกนําไปประมวลผลกอ น ตวั อยา งที่ 13-4 การออกแบบวงจรรปู 13.4 ดวยภาษา VHDL โดยใชต วั แปรวาริเอเบอร Entity EX_04 is Port ( a, b, c : in BIT; Z : out BIT); end EX_04; architect ure Behavioral of EX_04 is begin Process(a, b) variabl e x: BIT; begin x := a and b; z <= x or c; end Process; end Behavioral; 13.8 คําสั่งเง่ือนไข (Conditional statement) คาํ สงั่ เงอ่ื นไขเปน คาํ สง่ั ทใี่ ชส ําหรบั คมุ ทศิ ทางการทาํ งานของโปรแกรม โดยคําส่งั เง่ือนไขถูกแบง ออกเปน 2 วิธคี ือคาํ สง่ั ทม่ี กี ารทาํ งานเปนแบบขนาน และคําสั่งที่มีการทํางานแบบลําดบั โดยมที งั้ หมด 4 คาํ สง่ั ดังนี้ 253
เอกสารประกอบการสอนวิชาวงจรดจิ ิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสุข 13.8.1 คาํ ส่งั When – Else คาํ สง่ั ท่มี กี ารทาํ งานแบบขนาน โดยสถานะของสัญญาณเอาตพุตจะมีคาตรงกับสถานะ ของสญั ญาณหรือคาคงทที่ ีอ่ ยูห นา When ในกรณีท่เี งอ่ื นไขท่อี ยูหลงั When เปน จริง โครงสรางคําส่ัง เปน ดังน้ี signal_nam e<= expression_1 when co ndision1 else expression_2 when condision2 else … Expression_n; รปู ที่ 13.8 โครงสรา งคําสั่ง When – Else จากรูปท่ี 13.8 signal_name คือ ชอ่ื สญั ญาณเอาตพุต expression_1, expression_2,…,expression_n คือสถานะของคาคงท่ี หรืออินพุตท่ีจะ กาํ หนดใหสัญญาณเอาตพุตโดยข้นึ อยกู ับเงอ่ื นไขโดยจะตรวจสอบเงอ่ื นไขแรกกอน (condision1) ซึ่ง หากเปนจริงจะกําหนดสถานะของ expression_1 ใหสญั ญาณเอาตพ ตุ แตหากเงือ่ นไขเปนเท็จจะไป ตรวจสอบเง่ือนไขตอไป กรณีที่ไมมีเงอื่ นไขใดเลยท่ีเปนจริงจะกําหนดสถานะของ expression ตัว สุดทา ย (expression_n) ใหแกสญั ญาณเอาตพ ุตโดย expression ตวั สุดทายตอ งไมม ี คาํ สง่ั when – Else ตามหลัง ตวั อยา งท่ี 13-5 จงออกแบบวงจรมลั ติเพล็กเซอรแ บบ 2 อนิ พุตโดยใชค ําสง่ั When – Else โดยมี C เปน สญั ญาณทีใ่ ชเลือก พฤตกิ รรมของวงจร ดงั นี้ เมอ่ื C = 0แสดงผลลพั ธ Z = A C = 1 แสดงผลลพั ธ Z = B entity EX_05 is Port ( A, B, C : in BIT; Z : out BIT); end EX_05; architecture Behavioral of EX_05 is b egin Z <= A when C = '0' else B; end Behavioral; จากโปรแกรมมหี ลักการทาํ งานเปน ดังน้ี เมอ่ื C = 0 (เง่ือนไขเปนจรงิ ) จะได Z = A แตหากเงอื่ นไขเปนเท็จจะได Z = B 254
เอกสารประกอบการสอนวิชาวงจรดิจิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสุข เนือ่ งจาก C เปน ตวั แปรแบบ BIT ซ่ึงมเี พียง 2 สถานะคือ 0 หรือ 1 ดงั นัน้ กรณที ี่เงื่อนไขเปน เทจ็ จะเกดิ ขน้ึ เม่อื C มคี าเปน 1 13.8.2 คาํ สั่ง With – Select คาํ สัง่ ทมี่ ีการทํางานแบบขนาน โดยสถานะของสัญญาณเอาตพุตจะมคี าตรงกับสถานะ ของสัญญาณหรอื คา คงทท่ี ี่อยหู นา When ในกรณีทเ่ี ง่ือนไขท่ีอยูหลัง When มีคาตรงกับสัญญาณที่ อยหู ลงั With โครงสรางของคาํ สัง่ เปน ดงั นี้ Wit h select_signal select signal_nam e<= expression_1 when co ndision1; expression_2 when condision2; … expression_n when condision_n; รูปที่ 13.9 โครงสรา งคาํ สั่ง With – Select จากรปู ท่ี 13.9 signal_name คือ สญั ญาณเอาตพ ตุ expression_1, expression_2,…,expression_n คือสถานะของคาคงที่ หรืออินพุตที่ จะกําหนดใหสัญญาณเอาตพุตโดย ข้ึนอยูกับเง่ือนไข โดยเง่ือนไขใดที่ตรงกับสัญญาณ “ select_signal” จะกาํ หนดใหส ถานะของสญั ญาณเอาตพตุ มีคาตรงกับสถานะของสัญญาณที่อยูใน บรรทัดเดยี วกันกับเงื่อนไข เชน กรณีท่ี condision2 ตรงกับ select_signal ดังน้ัน signal_name จะมสี ถานะตรงกับ expression_2 เปนตน ตัวอยา งที่ 13-6 จงออกแบบวงจรทม่ี ีการทาํ งานเชนเดยี วกบั วงจรในตวั อยางท่ี 13-5 แตใหใชค าํ ส่งั With - Select entity EX_06 is Port ( A,B,C : in BIT; Z : out BIT); end EX_06; architecture Behavioral of EX_06 is b e gin with C select Z <= A when '0', B w hen '1'; end Behavioral ; 255
เอกสารประกอบการสอนวิชาวงจรดจิ ิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสุข 13.8.3 คาํ สง่ั If - Else เปน คาํ สงั่ ท่ีนิยมใชมากที่สุด โดยคําส่ัง If – Else จะเปนคําส่ังท่ีมีการทํางานเปนแบบ ลําดับ ดังนัน้ การใชงานจะตอ งอยูภายในคําสั่งโปรเซส โดยชุดคําส่ังที่จะถูกนําไปใชงานอยูในบล็อค ของเง่อื นไขท่เี ปน จรงิ โครงสรางของคาํ ส่ังเปนดงั น้ี if condition1 then sequential _st at em ent1; el sif condition2 then sequential _st at em ent2; … el se sequential _st at em entn; en d if รูปท่ี 13.10 โครงสรางคําสง่ั If – Else จากรูปท่ี 13.10 การทํางานจะเร่มิ ตรวจสอบเง่ือนไข condition1 กอ น ซ่ึงหากเงอื่ นไขเปนจริง โปรแกรมจะประมวลผลการทํางานที่ sequential_statement1 แตห ากเง่ือนไขเปนเท็จ โปรแกรม จะตรวจสอบเง่ือนไขถัดไป อยางไรก็ตามกรณีที่ไมมีเงื่อนไขท่ีเปนจริง โปรแกรมจะประมวลผล sequential_statementn ทอ่ี ยูใ นบล็อกของ else ซ่ึงเปนคําส่งั ที่อยูส ว นสุดทายของคําสง่ั If – Else โดยท่ีคําส่ัง If จะตองมีเสมอในโครงสรางของคําสั่ง If – Else แตคําสั่ง Else และคาํ ส่ัง Elsif จะมี หรอื ไมมกี ็ได ตัวอยา งที่ 13-7 จงออกแบบวงจรทีม่ ีการทาํ งานเชนเดยี วกบั วงจรในตัวอยา งท่ี 13-5 แตใ หใ ชค ําส่ัง If – El se entity EX_07 is Port ( A,B,C : in BIT; Z : out BIT); end EX_07; architecture Behavioral of EX_07 is begin Process(A,B) begin if C = '0' then Z <= A; el se Z <= 'B'; end if; end process; end Behavioral; 256
เอกสารประกอบการสอนวชิ าวงจรดิจิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสขุ 13.8.4 คาํ สัง่ Case - When คาํ สัง่ Case – When จะเปน คาํ สัง่ ทม่ี กี ารทํางานเปน แบบลาํ ดับเชน เดียวกนั กับคาํ ส่ัง If - Else ดงั นั้นการใชงานจะตอ งอยูภายในคําสั่งโปรเซส โดยชดุ คําสัง่ ทจี่ ะถูกนาํ ไปใชงานจะอยูใ นบลอ็ ก when ที่มีสถานะสัญญาณท่ีตรงกบั สถานะของสญั ญาณท่อี ยูหลงั case กรณีทไี่ มมีสญั ญาณทอี่ ยหู ลงั when ที่มีสถานะตรงกับสถานะที่อยูหลัง case โปรแกรมจะเลือกใชงานชุดคําส่ังที่อยูหลัง when others ซงึ่ จะเปน ชุดคําสัง่ ทอี่ ยูตําแหนงสุดทายของคําสั่ง Case – When โครงสรางของคําส่ังเปน ดังนี้ case expression is w hen choice_1 => sequent ial_statem ent1; w hen choice_2 => sequent ial_statem ent1; … w hen ot hers sequential_statem entn; end case รูปที่ 13.11 โครงสรา งคําสัง่ Case - When จากรปู ท่ี 13.11 ชุดคําสั่งท่ีจะถูกนําไปประมวลผลจะอยูในบรรทัดเดียวกันกับ choice ที่มี สถานะต รงกับ expression เชน choice_1 มีสถานะต รง กับ expression คําส่ัง sequential_statement1 จะเปน คาํ สัง่ ท่ีถูกนําไปประมวลผล เปนตน ตัวอยางท่ี 13-8 จงออกแบบวงจรทม่ี ีการทาํ งานเชน เดยี วกบั วงจรในตวั อยางท่ี 13-5 แตใหใชค าํ สงั่ Case - When entityEX_08 is Port ( A, B, C : in BIT; Z : out BIT); endEX_08; architecture Behavioral of EX_08 is begin Process(A,B) begin case C is w hen '0' => Z <= A; w hen others => Z <= B; end case; end process; end Behavioral ; 257
เอกสารประกอบการสอนวชิ าวงจรดิจิทัลและลอจกิ โดย อาจารย กฤษณพงศ สมสขุ 13.9 การสรา งสญั ญาณนาฬกิ า การสรา งสญั ญาณนาฬิกาโดยใชภาษา VHDL มีรูปแบบคาํ ส่งั เปนดงั น้ี รปู แบบ: signal_name’ event and signal_name = ‘ 0 (or 1)’ ; โดยที่ signal_name คือ สัญญาณท่ีจะนํามาใชเปนสัญญาณนาฬิกา ซึ่งมี 2 สถานะคือหาก signal_name มคี า เปน 0 เปนการเกดิ สัญญานาฬิกาทข่ี อบขาลง แตหาก signal_name มคี า เปน 1 เปนการเกดิ สัญญานาฬิกาทีข่ อบขาขนึ้ ตวั อยา งที่ 13-9 สรา งฟลปิ ฟลอปแบบ D ทใ่ี ชส ญั ญาณนาฬกิ าขอบขาลงโดยใชภ าษา VHDL entity EX_09 is Port ( D,CLK : in BIT; Q,notQ : out BIT); endEX_09; architecture Behavioral of EX_09 is begin Process(CLK) begin if CLK'event and CLK = '0' then Q <= D; notQ<= not D; end if; end process; end Behavioral ; จากโปรแกรมกําหนดให D คอื อินพตุ ของวงจร, CLK คือ อินพตุ ท่ใี ชสรา งเปนสญั ญาณนาฬิกา, Q และ notQ คือเอาตพุตของวงจรโดยที่ notQ คือ นิเสธของ Q การทํางานคือเม่ือเกิดสัญญาณ นาฬกิ า Q จะมคี าเทา กับสถานะของ D และ notQ จะมีสถานะตรงขามกบั Q ขอสงั เกต สญั ญาณ CLK เปนสัญญาณอินพุตเพียงตัวเดียวที่ถูกประกาศเปนอินพุตของคําสั่ง โปรเซส เนอ่ื งจาก CLK จะมผี ลตอสัญญาณ Q และ notQ โดยตรง ในขณะที่ D จะขึ้นอยูกับสัญญาณ CLK หากไมเ กดิ สญั ญาณ CLK สถานะ Q และ notQ จะไมม ีการเปล่ยี นแปลง 13.10 บทสรปุ ภาษา VHDL (ยอมาจาก VHSIC Hardware Description Language) เปน ภาษาระดบั สูงที่ใช สาํ หรบั การออกแบบทางดานฮารดแวรประเภทหนงึ่ ซึง่ เปนวิธีการออกแบบวงจรดิจิทัลโดยใชวิธีของ การเขียนโปรแกรมเพอ่ื จาํ ลองการทํางาน ซง่ึ สามารถพัฒนาไดงาย เน่ืองจากรูปแบบของคําสั่งตางๆ เปน ภาษาที่มนุษยอานไดเขาใจ ดังนน้ั การใชภ าษาระดบั สูงในการออกแบบวงจรดิจิทลั ท่ีมีขนาดใหญ จงึ เปนวธิ ีทีเ่ หมาะสมมากกวา หากเปรยี บเทียบกับวิธีของกาวาดผังวงจรข้ึนใชง านเอง 258
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสขุ คําถามทายการทดลอง 1. ภาษา VHDL คอื อะไร และมปี ระโยชนอ ยางไร 2. Entity คืออะไร และมไี วเ พือ่ อะไร 3. จงอธิบายโครงสรางท้งั หมดของ Entity มาโดยละเอยี ด 4. จงเขยี นคาํ สง่ั ในสว นเอ็นตติ เ้ี พอ่ื ออกแบบวงจร Y = A(B + C) 5. Architecture คืออะไร และมีไวเ พ่อื อะไร 6. จงอธิบายโครงสรางท้ังหมดของ Architecture มาโดยละเอยี ด 7. จาก Entity ท่ีไดในขอ 4 จงนาํ มาออกแบบวงจรในสว นของ Architecture 8. Package คอื อะไร และมีประโยชนอ ยางไร 9. จงอธิบายความแตกตางระหวางชนดิ ขอ มลู แบบ BIT และ BIT_VECTOR 10. จงอธิบายความแตกตางระหวางการเรียงบติ ขอมลู แบบ TO และ DOWNTO 11. จงอธบิ ายความแตกตางระหวาง Concurrence statem ent และ Sequential st atement 12. จงอธิบายความแตกตางระหวาง Signal และ Variable 13. จงออกแบบวงจรถอดรหสั โดยใชภ าษา VHDL ทแ่ี ปลงจากอินพตุ ทีเ่ ปนเลขฐานสองขนาด 10 บิต เปน รหสั เลขฐานสบิ โดยใช 13.1 คาํ สง่ั When – El se 13.2 คําส่งั With – Select 13.3 คาํ ส่งั If – Else 13.4 คําสั่ง Case – When 14. จงออกแบบฟลปิ ฟลอปแบบ JK ทใ่ี ชส ัญญาณนาฬิกาทขี่ อบขาลงโดยใชภ าษา VHDL 259
เอกสารประกอบการสอนวิชาวงจรดจิ ิทลั และลอจกิ โดย อาจารย กฤษณพงศ สมสขุ เอกสารอา งองิ Mark, Z. (2004). Digital System Design with VHDL. United Kingdom: Pearson Ed u cat io n . ชํานาญ ปญ ญาใส และ วชั รากร หนูทอง. (2547). ภาษา VHDL สําหรบั การออกแบบวงจรดิจติ อล. กรุงเทพฯ: หางหุน สวนจาํ กดั เอช-เอน การพิมพ. ณรงค ทองฉิม และ เจริญ วงษชุมเย็น. (2552). ออกแบบไอซีดิจิตอลดวย FPGA และ CPLD ภาคปฏบิ ัติโดยใชภ าษา VHDL ซอฟตแวรทูล ISE WebPack.กรุงเทพฯ: บริษัท วี.พริ้นท (1991) จาํ กดั . http:/ / hep.uchicago.edu/ ~tangjian/ SVT_sub/ FTK_ATLAS/ AUX/ vhdl -tutorial .pdf 260
เอกสารประกอบการสอนวชิ าวงจรดจิ ิทลั และลอจิก โดย อาจารย กฤษณพงศ สมสุข บรรณานกุ รม Morris, M, Charl es, R.K. (2007). Logic and Com puter Design Fundam entals. New Jersey: Prentice-Hal l International Inc. Marcovit z, A. B. (2009). Introduction to Logic Design. New York: McGraw-Hil l . Mark, B. (2003). Com plete Digital Design: A Com prehensive Guide to Digital Electronics and Com puter System Architecture. New York: McGraw-Hil l . David, M. H. (2012).Digital Design and Com puter Architecture. USA: Morgan Kaufm ann. Ram aswam y, P. (2011). Digital System s Design. United Kingdom : London Business School . Morris, M, Michael , D. C. (2006). Digital Design. New Jersey: Prentice-Hal l Int ernational In c. Mark, Z. (2004). Digital System Design with VHDL. United Kingdom: Pearson Ed u cat io n . สมชาย ช่ืนวฒั นาประณธิ ิ. (2535). ดิจติ อลอิเล็กทรอนิกส.จ. อุดรธาน:ี มหาวทิ ยาลัยราชภัฏอดุ รธานี. ธวชั ชยั เล่ือนฉวี และ อนุรักษ เถือ่ นศิริ. (2527). ดิจิตอลเทคนคิ เลม 1.กรงุ เทพฯ: มิตรนราการพิมพ. ธวัชชัย เลอ่ื นฉวี. (2532). ดิจติ อลเทคนคิ เลม 2.กรงุ เทพฯ: มิตรนราการพมิ พ. มงคล ทองสงคราม. (2544).ทฤษฎีดิจิตอล.กรงุ เทพฯ: หา งหนุ สว นจํากัด วี.เจ. พริ้นดิง้ . ทมี งานสมารทเลริ น น่งิ . (2543). ออกแบบวงจร Digital และประยุกตใ ชงาน.กรงุ เทพฯ: หา งหนุ สว น สามัญสมารท เลริ นนิ่ง. ชาํ นาญ ปญ ญาใส และ วชั รากร หนูทอง. (2547). ภาษา VHDL สําหรับการออกแบบวงจรดจิ ติ อล. กรงุ เทพฯ: หางหนุ สว นจํากดั เอช-เอน การพิมพ. 261
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282