+ All Categories
Transcript
Page 1: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 105

บทท 7 การออกแบบวงจรลอจกดวย VHDL

7.1 หลกการเบองตนของวงจรลอจก

วงจรลอจกเบองตน เราจะศกษาเกยวกบ Two-state Logic คอจะมคา 2 สภาวะโดยมขอ ก าหนด คอ สามารถมไดเพยง 2 สภาวะเทานน และจะอยในสภาวะใดสภาวะหนง จะอยพรอมกนทง 2 สภาวะในเวลาเดยวกนไมได ลอจก 2 สภาวะดงกลาว อาจใชแทนความหมายตางๆ ได เชน ถก - ผด, สง – ต า, ขน – ลง, ปด – เปด, ใช – ไมใช, ท างาน – ไมท างาน เปนตน

เพอความสะดวก ตวแปรคา 2 สภาวะเราใชสญลกษณ 0 และ 1 โดยท

- ลอจก 0 แทนไมมสญญาณ หรอ สวทซ เปด - ลอจก 1 แทนมสญญาณ หรอ สวทซ ปด

ในระบบลอจก เราใชระดบของแรงดนไฟฟา (Voltage Level) แทนภาวะทงสองเมอใช ลอจก “l” แทนแรงดนทเปนบวกมากกวา เรากใช ลอจก “0” แทนแรงดนท เปนบวก นอยกวา ระบบเชนนเราเรยกวา ลอจกทางบวก (Positive Logic) ในทางตรงกนขาม ถาใช ลอจก “1” แทนแรงดนทเปนลบมากกวา เรากใช ลอจก “0” แทนแรงดนทเปนลบนอยกวา ระบบเชนน เราเรยกวา ลอจกทางลบ (Negative Logic) ตวอยางของ Positive และ Negative Logic ดงแสดงไวดงรปท 7.1

รปท 7.1 Positive และ Negative Logic

Page 2: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

106 การออกแบบวงจรลอจกดวย VHDL

7.2 เกทพนฐานและการแทนดวย VHDL

7.2.1 แอนดเกต (AND Gate) อปกรณลอจกเกตแตละตวมหนาทในการท างานไมเหมอนกน แอนดเกต จะท าหนาท

คลายๆ กบการคณ สญลกษณของแอนดเกต และวงจรสมมลการท างานแสดงในรปท 7.2 A และ B แทนคาระดบสญญาณทถกปอนเขามาทางอนพตของแอนดเกต F แทนระดบสญญาณทางเอาตพตของ แอนดเกต ผลของการแอนดกนระหวางคาระดบสญญาณทงสอง ถาคาระดบสญญาณทางอนพตใดอนพตหนงมคาเปน “0” จะสงผลใหคาระดบสญญาณทางเอาตพตมคาเปน “0” ดวย และคาระดบสญญาณทางเอาตพตมโอกาสเปน “1” ไดเพยงกรณเดยวนนคอระดบสญญาณอนพตทปอนใหกบแอนดเกต จะตองมคาระดบสญญาณเปน “1” ทงหมด และสามารถเขยนสมการหรอฟงกชนการท างานไดดงนคอ BAF

รปท 7.2 สญลกษณ วงจรสมมล และตารางการท างานของแอนดเกต

Page 3: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 107

การแทนแอนดเกตดวย VHDL การแทนแอนดเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.3 ซงจะเปน พนฐานในการน ามาประกอบเปนวงจรทใหญขนไดตอไป

-------------------------------------------------- -- AND gate

-- two descriptions provided

--------------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------------------

entity AND_ent is

port( x: in std_logic;

y: in std_logic;

F: out std_logic );

end AND_ent;

--------------------------------------------------

architecture behav1 of AND_ent is

begin

process(x, y)

begin

-- compare to truth table

if ((x='1') and (y='1')) then

F <= '1';

else

F <= '0';

end if;

end process;

end behav1;

architecture behav2 of AND_ent is

begin

F <= x and y;

end behav2;

--------------------------------------------------

รปท 7.3 แสดงการแทนแอนเกตดวยภาษา VHDL

Page 4: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

108 การออกแบบวงจรลอจกดวย VHDL

7.2.2 ออรเกต (OR Gate) การท างานของออรเกตจะมลกษณะคลายๆ กบการน าคาระดบสญญาณอนพตมาบวก

กน สญลกษณของออรเกต และวงจรสมมลการท างานของออรเกต แสดงดงรปท 7.4

รปท 7.4 สญลกษณ วงจรสมมล และตารางการท างานของออรเกต

ตวแปร A และ B ใชแทนคาระดบสญญาณทปอนใหกบ ออรเกต ตวแปร F แทนคาระดบสญญาณทางเอาตพตทไดจาก A และ B ท าการออรกน จากตารางการท างานของออรเกต แสดงใหเหนวาคาระดบสญญาณทางเอาตพตของออรเกต จะมโอกาสเปน “0” ไดนน คาระดบสญญาณทปอนเขาทางอนพตจะตองเปนคา “0” ทกคา ทเปนเชนนกเพราะวาออรเกต ไมจ าเปนจะตองมแค 2 อนพต อนพตของออรเกต อาจจะเปน 3, 4 หรอ 5 หรอมากกวา แลวแตเราจะเลอกน ามาใชงาน และในขณะเดยวกน ถาคาระดบสญญาณทางอนพตใดมคาเปน “1” จะสงผลทางเอาตพตเปน “1” เราสามารถเขยนสมการหรอฟงกชนการท างานของออรเกตไดดงนคอ BAF

Page 5: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 109

การแทนออรเกตดวย VHDL การแทนออรเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.5

-----------------------------------------------

-- OR gate

-- two descriptions provided

-----------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

-----------------------------------------------

entity OR_ent is

port( x: in std_logic;

y: in std_logic;

F: out std_logic );

end OR_ent;

-----------------------------------------------

architecture OR_arch of OR_ent is

begin

process(x, y)

begin

-- compare to truth table

if ((x='0') and (y='0')) then

F <= '0';

else

F <= '1';

end if;

end process;

end OR_arch;

architecture OR_beh of OR_ent is

begin

F <= x or y;

end OR_beh;

-----------------------------------------------

รปท 7.5 การแทนออรเกตดวยภาษา VHDL

Page 6: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

110 การออกแบบวงจรลอจกดวย VHDL

7.2.3 นอตเกต หรอ อนเวอรเตอร (NOT Gate or Inverter) นอตเกต มหนาทในการกลบคาระดบสญญาณ ใหมคาเปนตรงกนขามกบคาระดบ

สญญาณทถกปอนเขามาทางอนพต สามารถพจารณาวงจรสมมลไดดงรปท 7.6 เราสามารถเขยนสมการความสมพนธในการท างานของนอตเกตดงสมการ AF

รปท 7.6 สญลกษณ โครงสรางสมมล และตารางการท างานของนอตเกต การแปลงเกตดวยนอตเกต

โดยหลกการพนฐานคอการตอนอตเกตเขาทเอาตพตของเกตตางๆ เชน ในรปเมอตอนอตเกตทเอาตพตของแอนดเกต จะท าใหการท างานเหมอนกบแนนดเกต เปนตน

รปท 7.7 การแปลงแอนดเกตแปนแนนดเกตดวยนอตเกต

Page 7: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 111

หลกการตอนอตเกตเขาทอนพตของเกตอนๆ กสามารถเปลยนแปลงฟงกชนการท างานของเกตเหลานนไดเชนกน ดงตวอยาง ตอนอตเกตเขาทอนพตทงสองของนอรเกตจะเปนผลใหนอรเกตนท างานไดเหมอนกบแอนดเกต เปนตน นนแสดงวา )()( BABA

รปท 7.8 การตอนอตเกตเขาทอนพตของนอรเกตจงท างานไดเหมอนแอนดเกต

ในท านองเดยวกน เมอตอนอตเกตเขาทงทเอาตพตและอนพตของเกตอนๆ กสามารถเปลยนแปลงฟงกชนของเกตนนได เชน ตอนอตเกต 2 ตวเขาทอนพตของแอนดเกต และตออกตวหนงทเอาตพตของแอนดเกต จะท าใหแอนดเกตท างานเหมอนกบออรเกต เปนตน

รปท 7.9 การตอนอตเกตเขาทอนพตและเอาตพตของแอนดเกตจงท างานไดเหมอนออรเกต นนแสดงวา )()( BABA ส าหรบเกตตวทสามารถเปลยนแปลงฟงกชนการ

ท างานไดโดยใชนอตเกตตอทอนพตหรอเอาตพตนน แสดงในตารางท 7.1

Page 8: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

112 การออกแบบวงจรลอจกดวย VHDL

ตารางท 7.1 การแปลงเกตโดยใชนอตเกตทางดานอนพตและเอาตพต

Page 9: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 113

ดงนนจะเหนไดวามการใชแนนดเกตและนอรเกต เพอดดแปลงใหท าหนาทแทนเกตตวอนๆ อกมาก สญลกษณของแนนตเกตและนอรเกตจงอาจเขยนไ ด 2 ลกษณะ กลาวคอ เขยนโดยใช นอตเกต ไวทอนพตหรอไวทเอาตพต ดงแสดงในรปท 7.10 (ก) เปนการเขยนสญลกษณแนนดเกตโดยเขยนนอตเกตไวทอนพตของออรเกต และในรปท 7.10 (ข) เขยนสญลกษณของนอรเกตโดยใชนอตเกต ตอทอนพตของแอนดเกต เปนตน

รปท 7.10

Page 10: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

114 การออกแบบวงจรลอจกดวย VHDL

การแทนนอตเกตดวย VHDL การแทนนอตเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.11

-------------------------------------------------

-- Inverter

--

-- two descriptions provided

-------------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

-------------------------------------------------

entity Inverter is

port( x: in std_logic;

F: out std_logic );

end Inverter;

-------------------------------------------------

architecture behv1 of Inverter is

begin

process(x)

begin

-- compare to truth table

if (x='1') then

F <= '1';

else

F <= '0';

end if;

end process;

end behv1;

architecture behv2 of Inverter is

begin

F <= not x;

end behv2; รปท 7.11 การแทนนอตเกตดวยภาษา VHDL

Page 11: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 115

7.2.4 แนนดเกต (NAND Gate) แนนดเกต เปนเกตทมลกษณะโครงสรางคลายแอนดเกต โดยการน าแอนดเกตและ

นอตเกตมาใชงานรวมกนท าใหแนนดเกตมคาระดบสญญาณทางเอาตพตตรงขามกบแอนดเกต

รปท 7.12 สญลกษณ โครงสรางสมมล และตารางการท างานของแนนดเกต

จากตารางการท างานของแนนดเกต คาระดบสญญาณทางอนพตเพยงสภาวะเดยว เทานนทสามารถท าใหคาระดบสญญาณทางเอาตพตมคาเปน “0” ได คอ คาระดบสญญาณทางดานอนพตจะตองมคาเปน “1” ทกอนพต ในสภาวะอนจะใหคาระดบสญญาณเปน “1” เราสามารถเขยนสมการหรอฟงกชนการท างานของ แนนดเกต ไดดงสมการ BAF

นอกจากนแลวแนนดเกตยงเปนเกตอเนกประสงคทสามารถทจะน าไปท าเปนเกตชนดอนๆไดอกดงตารางท 7.2

Page 12: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

116 การออกแบบวงจรลอจกดวย VHDL

ตารางท 7.2 แสดงการน าแนนดเกตไปท าเปนเกตตางๆ

Page 13: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 117

การแทนแนนดเกตดวย VHDL การแทนแนนดเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.13

-------------------------------------------------- -- NAND gate

--

-- two descriptions provided

--------------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------------------

entity NAND_ent is

port( x: in std_logic;

y: in std_logic;

F: out std_logic );

end NAND_ent;

--------------------------------------------------

architecture behv1 of NAND_ent is

begin

process(x, y)

begin

-- compare to truth table

if (x='1' and y='1') then

F <= '0';

else

F <= '1';

end if;

end process;

end behv1;

--------------------------------------------------

architecture behv2 of NAND_ent is

begin

F <= x nand y;

end behv2;

Page 14: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

118 การออกแบบวงจรลอจกดวย VHDL

รปท 7.13 การแทนแนนดเกตดวยภาษา VHDL 7.2.5 นอรเกต (NOR Gate) นอรเกต เปนอปกรณลอจกเกตทเกดจากการน าเอา ออรเกต และนอตเกต มาใชงาน รวมกน โครงสราง และสญลกษณแสดงดงรปท 7.14

รปท 7.14 สญลกษณ โครงสรางสมมล และตารางการท างานของนอรเกต

จากตารางการท างานของ นอรเกต คาระดบสญญาณทางเอาตพตมโอกาสเปน “1” ไดในกรณเดยว คอคาระดบสญญาณทางดานอนพตทงหมดจะตองเปน “0” และเมอใดทคาระดบสญญาณทางอนพตหนงอนพตใดเปน “1” จะสงผลใหคาระดบสญญาณทางเอาตพตเปน “0” สามารถเขยนสมการหรอฟงกชนการท างานของนอรเกต ไดดงสมการ BAF

Page 15: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 119

การแทนนอรเกตดวย VHDL การแทนนอรเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.15

-------------------------------------------------- -- NOR gate

--

-- two descriptions provided

--------------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------------------

entity NOR_ent is

port( x: in std_logic;

y: in std_logic;

F: out std_logic );

end NOR_ent;

--------------------------------------------------

architecture behv1 of NOR_ent is

begin

process(x, y)

begin

-- compare to truth table

if (x='0' and y='0') then

F <= '1';

else

F <= '0';

end if;

end process;

end behv1;

architecture behv2 of NOR_ent is

begin

F <= x nor y;

end behv2;

--------------------------------------------------

Page 16: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

120 การออกแบบวงจรลอจกดวย VHDL

รปท 7.15 การแทนนอรเกตดวยภาษา VHDL 7.2.6 เอกคลซฟออรเกต (Exclusive OR Gate) อปกรณลอจกเกตทไดกลาวมา สามารถสรปไดวา เปนการสรางเพอตอบสนองการ

ท างานทแตกตางกนออกไป เอกคลซฟออรเกต กเชนเดยวกน แต เอกคลซฟออรเกต เปนเกตทคอนขางแตกตางไปจากกลมทไดกลาวมา ลกษณะการท างานของ เอกคลซฟออรเกต สามารถจดไดวาเปนอปกรณลอจกเกตทมการท างานในลกษณะการเปรยบเทยบคาระดบสญญาณทางอนพต

รปท 7.16 สญลกษณ โครงสรางสมมล และตารางการท างานของเอกคลซฟออรเกต

จากตารางการท างาน จะเปนการเปรยบเทยบคาระดบสญญาณอนพต ในกรณทคาระดบสญญาณทางอนพตมความแตกตาง ตางระดบสญญาณทางเอาตพตของ เอกคลซฟออรเกต จะมคาเปน “1” แตถาคาระดบสญญาณทางอนพตเหมอนกน จะไดคาระดบสญญาณทางเอาตพตเปน “0” เราสามารถเขยนสมการหรอฟงกชนการท างานของ เอกคลซฟออรเกต ไดดงสมการ BAF

Page 17: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 121

การแทนเอกคลซฟออรเกต ดวย VHDL การแทนเอกคลซฟออรเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.17

----------------------------------------------- -- XOR gate

--

-- two descriptions provided

-----------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

-----------------------------------------------

entity XOR_ent is

port( x: in std_logic;

y: in std_logic;

F: out std_logic );

end XOR_ent;

-----------------------------------------------

architecture behv1 of XOR_ent is

begin

process(x, y)

begin

-- compare to truth table

if (x/=y) then

F <= '1';

else

F <= '0';

end if;

end process;

end behv1;

architecture behv2 of XOR_ent is

begin

F <= x xor y;

end behv2;

-----------------------------------------------

Page 18: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

122 การออกแบบวงจรลอจกดวย VHDL

รปท 7.17 การแทนเอกคลซฟออรเกต ดวยภาษา VHDL 7.2.7 เอกคลซฟนอรเกต (Exclusive NOR Gate) เอกคลซฟนอรเกต เปนเกตทเราน าเอา เอกคลซฟออรเกต และนอตเกต มาตอเขาดวยกน

คาสญญาณเอาตพตของ เอกคลซฟนอรเกต จะใหผลทตรงกนขามกบ เอกคลซฟออรเกต

รปท 7.18 สญลกษณ โครงสรางสมมล และตารางการท างานของเอกคลซฟนอรเกต

ผลการท างานของเอกคลซฟนอรเกต กรณคาระดบสญญาณทปอนเขาทางดานอนพตมคาเทากน จะใหผลคาระดบสญญาณทางดานเอาตพตเปน “1” แตในกรณคาสญญาณทปอนใหทางอนพตมคาไมเทากน ผลของคาระดบสญญาณทไดทางดานเอาตพตจะเปน “0” เราสามารถเขยนสมการหรอฟงกชนการท างานของ เอกคลซฟนอรเกตไดดงสมการ BAF

Page 19: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 123

การแทนเอกคลซฟนอรเกต ดวย VHDL การแทนเอกคลซฟนอรเกตดวย VHDL สามารถอธบายเปนภาษา VHDL ไดดงรปท 7.19

-----------------------------------------------

-- XNOR gate

--

-- two descriptions provided

-----------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

-----------------------------------------------

entity XNOR_ent is

port( x: in std_logic;

y: in std_logic; F: out std_logic );

end XNOR_ent;

-----------------------------------------------

architecture behv1 of XNOR_ent is

begin

process(x, y)

begin

-- compare to truth table

if (x/=y) then

F <= '0';

else

F <= '1';

end if;

end process;

end behv1;

architecture behv2 of XNOR_ent is

begin

F <= x xnor y;

end behv2;

----------------------------------------------------------------------

Page 20: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

124 การออกแบบวงจรลอจกดวย VHDL

รปท 7.19 การแทนเอกคลซฟนอรเกต ดวยภาษา VHDL 7.2.8 บฟเฟอร (Buffer) บฟเฟอร เปนเกตทไมคอยจะมบทบาทมากนก ส าหรบนกออกแบบมอใหม เพราะ

บฟเฟอรใหคาระดบสญญาณทางดานเอาตพต เหมอนระดบสญญาณทางดานอนพต หนาทของบฟเฟอร สามารถน าไปเปนตวขบคาระดบสญญาณใหมความแรงยงขน และสามารถน าไปชวยแกปญหา ทเกดจากการหนวงสญญาณ (Propagation Delay Time) สมการหรอฟงกชนของบฟเฟอร คอ AF

รปท 7.20 สญลกษณ และตารางการท างานของบฟเฟอร

Page 21: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 125

7.3 การออกแบบวงจรลอจกดวย VHDL

ในการออกแบบวงจรลอจกจาก Switching function หรอ Truth table นนเราจะตองลดรป Function ของ เอาตพต ใหเหลอนอยทสดกอน โดยใชทฤษฎของบลน หรอวธอนๆ ทงนกเพอใหวงจรลอจกทเราตองการมจ านวนเกตนอยทสด หรอมการลงทนในการสรางวงจรต า นอกจากนยงเปนการลด Delay time ของวงจรอกดวย (Delay time หมายถง เวลาทใชในการท างานของวงจร นบจากอนพต ไปถงเอาตพต) ตวอยางท 7.1 จงออกแบบวงจรลอจกจากสมการบลน CBACAABBAY วธท า CBACAABBAY

CAB

BCAAAB

)1()(

รปท 7.21 วงจรจากการลดรปสมการในตวอยางท 7.1 ตวอยางท 7.2 จงออกแบบวงจรลอจกจากสมการบลนตอไปน วธท า CBAABCCBABCBABAY

CBA

BCCBA

CBABCA

CBAABCCBBBA

)1(

Page 22: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

126 การออกแบบวงจรลอจกดวย VHDL

รปท 7.22 วงจรจากการลดรปสมการในตวอยางท 7.2 ตวอยางท 7.3 จงออกแบบวงจรลอจกจากสมการบลนตอไปน วธท า ))()()(( CBACBACBABAY

BA

BABA

))((

รปท 7.23 วงจรจากการลดรปสมการในตวอยางท 7.3 ตวอยางท 7.4 จงออกแบบวงจรลอจกจากสมการบลนตอไปน

วธท า CDBACBABAY ))((

CDB

CDB

CDACAAB

CDCBABABA

CDBACBABA

)(

))((

รปท 7.24 วงจรจากการลดรปสมการในตวอยางท 7.4

ตวอยางท 7.5 จงออกแบบวงจรลอจกจากสมการบลนตอไปน

วธท า DCBADACABABCDY ))((

Page 23: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 127

))((

)1(

))((

DCAABCD

DCAABCD

BDCAABCD

DCBADCAABCD

DCBADACABABCD

รปท 7.25 วงจรจากการลดรปสมการในตวอยางท 7.5 7.4 Timing Diagram

Timing Diagram เปนองคประกอบอกองคประกอบหนงในระบบวงจรดจตอล ทใชแสดงผลสถานะตางๆ ออกมาเปนสญญาณพลส การเขยน Timing Diagram เปนเรองทงายมาก ถาไมค านง ถงผลของการหนวงเวลาในตวอปกรณลอจกเกต (Delay Time) ซงจะเกดขนกบตวอปกรณทกตว ลกษณะของการเปลยนแปลงของสญญาณพลสจะประกอบดวยกน 2 ชวง คอ ขอบขาขนของสญญาณและขอบขาลงของสญญาณ ดงรปท 7.26

Page 24: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

128 การออกแบบวงจรลอจกดวย VHDL

รปท 7.26 ตวอยางของการเขยน Timing Diagram

ขอบขาขนของสญญาณ หมายถง ชวงของการเปลยนแปลงจากคาระดบสญญาณ “0” ไปเปน “1” (Active HIGH)ขอบขาลงของสญญาณ หมายถง ชวงของการเปลยนแปลงจากคาระดบสญญาณ “1” ไปเปน “0” (Active LOW)

รปท 7.27 ลกษณะของสญญาณ Clock เราสามารถออกแบบวงจรลอจกจากตารางความจรงหรอสมการทก าหนดใหได ในท านองเดยวกนเรากสามารถทจะออกแบบวงจรลอจกจาก Timing Diagram ไดเชนเดยวกน ตวอยางท 7.6 จงออกแบบวงจรลอจกจาก Timing Diagram ตอไปน

Page 25: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 129

วธท า จาก Timing Diagram ทก าหนดให จะไดวา เมอ A = 0 B = 0 C = 0 จะได Output Y = 0 A = 0 B = 0 C = 1 จะได Output Y = 1 A = 0 B = 1 C = 0 จะได Output Y = 1 A = 0 B = 1 C = 1 จะได Output Y = 1 A = 1 B = 0 C = 0 จะได Output Y = 0 A = 1 B = 0 C = 1 จะได Output Y = 1 A = 1 B = 1 C = 0 จะได Output Y = 0 A = 1 B = 1 C = 1 จะได Output Y = 1 สามารถเขยนตารางความจรงไดดงน

Input Output

A B C Y

0 0 0 0

Input A

Input B

Input C

Output Y

Page 26: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

130 การออกแบบวงจรลอจกดวย VHDL

0 0 0 1 1 1 1

0 1 1 0 0 1 1

1 0 1 0 1 0 1

1 1 1 0 1 0 1

mY (1, 2, 3, 5, 7)

BAC

BAAAC

ACBACA

ACBCA

ACBCBA

ACBACBA

BBACCCBACBA

ABCCBABCACBACBA

)(

)(

)(

)()(

Page 27: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

การออกแบบวงจรลอจกดวย VHDL 131

แบบฝกหดท 7

1. จงตอบค าถามตอไปน (ก) เกตทใหเอาตพตตรงกนขามกบอนพตคอเกตชนดใด (ข) เกตทใหเอาตพต 0 เมออนพตตวใดตวหนงหรอทงหมดเปน 0 คอเกตชนดใด

(ค) เกตทใหเอาตพตเปน 0 เมออนพตมลอจกตางกนคอเกตชนดใด

2. จากวงจรใชแทนเกตชนดใด (ก) (ข)

(ค) (ง)

3. จากวงจรเอาตพต Y มคาเทากบเทาใด

(ก)

(ข)

(ค)

Page 28: การออกแบบวงจรลอจิกด้วย VHDL · 106 การออกแบบวงจรลอจิกด้วย vhdl 7.2 เกทพื้นฐานและการแทนด้วย

132 การออกแบบวงจรลอจกดวย VHDL

(ง)

4. จากรปจงหาจดผดพลาดของโปรแกรม VHDL

--------------------------------

-- OR gate

-- two descriptions provided

-------------------------------- library ieee;

use ieee.std_logic_1164.all; -------------------------------- entity OR_ent is

port( x: in std_logic;

y: in std_logic;

F: out std_logic

);

end OR_ent;

----------------------------------

architecture OR_arch of OR_ent is

begin

process(x, y)

began

-- compare to truth table

if ((x='0') or (y='0')) then

F <= '0';

else

F <= '1';

end if;

end process;

end OR_arch;

architecture OR_beh of OR_ent is

begin

F <= x and y;

end OR_beh;

------------------------------------

5. จงออกแบบวงจรลอจกจากสมการบลนตอไปนพรอมเขยน VHDL

DCBADACABABCDY ))((


Top Related