การออกแบบวงจรลอจิกด้วย vhdl · 106...
TRANSCRIPT
การออกแบบวงจรลอจกดวย 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
106 การออกแบบวงจรลอจกดวย VHDL
7.2 เกทพนฐานและการแทนดวย VHDL
7.2.1 แอนดเกต (AND Gate) อปกรณลอจกเกตแตละตวมหนาทในการท างานไมเหมอนกน แอนดเกต จะท าหนาท
คลายๆ กบการคณ สญลกษณของแอนดเกต และวงจรสมมลการท างานแสดงในรปท 7.2 A และ B แทนคาระดบสญญาณทถกปอนเขามาทางอนพตของแอนดเกต F แทนระดบสญญาณทางเอาตพตของ แอนดเกต ผลของการแอนดกนระหวางคาระดบสญญาณทงสอง ถาคาระดบสญญาณทางอนพตใดอนพตหนงมคาเปน “0” จะสงผลใหคาระดบสญญาณทางเอาตพตมคาเปน “0” ดวย และคาระดบสญญาณทางเอาตพตมโอกาสเปน “1” ไดเพยงกรณเดยวนนคอระดบสญญาณอนพตทปอนใหกบแอนดเกต จะตองมคาระดบสญญาณเปน “1” ทงหมด และสามารถเขยนสมการหรอฟงกชนการท างานไดดงนคอ BAF
รปท 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
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
การออกแบบวงจรลอจกดวย 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
110 การออกแบบวงจรลอจกดวย VHDL
7.2.3 นอตเกต หรอ อนเวอรเตอร (NOT Gate or Inverter) นอตเกต มหนาทในการกลบคาระดบสญญาณ ใหมคาเปนตรงกนขามกบคาระดบ
สญญาณทถกปอนเขามาทางอนพต สามารถพจารณาวงจรสมมลไดดงรปท 7.6 เราสามารถเขยนสมการความสมพนธในการท างานของนอตเกตดงสมการ AF
รปท 7.6 สญลกษณ โครงสรางสมมล และตารางการท างานของนอตเกต การแปลงเกตดวยนอตเกต
โดยหลกการพนฐานคอการตอนอตเกตเขาทเอาตพตของเกตตางๆ เชน ในรปเมอตอนอตเกตทเอาตพตของแอนดเกต จะท าใหการท างานเหมอนกบแนนดเกต เปนตน
รปท 7.7 การแปลงแอนดเกตแปนแนนดเกตดวยนอตเกต
การออกแบบวงจรลอจกดวย VHDL 111
หลกการตอนอตเกตเขาทอนพตของเกตอนๆ กสามารถเปลยนแปลงฟงกชนการท างานของเกตเหลานนไดเชนกน ดงตวอยาง ตอนอตเกตเขาทอนพตทงสองของนอรเกตจะเปนผลใหนอรเกตนท างานไดเหมอนกบแอนดเกต เปนตน นนแสดงวา )()( BABA
รปท 7.8 การตอนอตเกตเขาทอนพตของนอรเกตจงท างานไดเหมอนแอนดเกต
ในท านองเดยวกน เมอตอนอตเกตเขาทงทเอาตพตและอนพตของเกตอนๆ กสามารถเปลยนแปลงฟงกชนของเกตนนได เชน ตอนอตเกต 2 ตวเขาทอนพตของแอนดเกต และตออกตวหนงทเอาตพตของแอนดเกต จะท าใหแอนดเกตท างานเหมอนกบออรเกต เปนตน
รปท 7.9 การตอนอตเกตเขาทอนพตและเอาตพตของแอนดเกตจงท างานไดเหมอนออรเกต นนแสดงวา )()( BABA ส าหรบเกตตวทสามารถเปลยนแปลงฟงกชนการ
ท างานไดโดยใชนอตเกตตอทอนพตหรอเอาตพตนน แสดงในตารางท 7.1
112 การออกแบบวงจรลอจกดวย VHDL
ตารางท 7.1 การแปลงเกตโดยใชนอตเกตทางดานอนพตและเอาตพต
การออกแบบวงจรลอจกดวย VHDL 113
ดงนนจะเหนไดวามการใชแนนดเกตและนอรเกต เพอดดแปลงใหท าหนาทแทนเกตตวอนๆ อกมาก สญลกษณของแนนตเกตและนอรเกตจงอาจเขยนไ ด 2 ลกษณะ กลาวคอ เขยนโดยใช นอตเกต ไวทอนพตหรอไวทเอาตพต ดงแสดงในรปท 7.10 (ก) เปนการเขยนสญลกษณแนนดเกตโดยเขยนนอตเกตไวทอนพตของออรเกต และในรปท 7.10 (ข) เขยนสญลกษณของนอรเกตโดยใชนอตเกต ตอทอนพตของแอนดเกต เปนตน
รปท 7.10
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
การออกแบบวงจรลอจกดวย VHDL 115
7.2.4 แนนดเกต (NAND Gate) แนนดเกต เปนเกตทมลกษณะโครงสรางคลายแอนดเกต โดยการน าแอนดเกตและ
นอตเกตมาใชงานรวมกนท าใหแนนดเกตมคาระดบสญญาณทางเอาตพตตรงขามกบแอนดเกต
รปท 7.12 สญลกษณ โครงสรางสมมล และตารางการท างานของแนนดเกต
จากตารางการท างานของแนนดเกต คาระดบสญญาณทางอนพตเพยงสภาวะเดยว เทานนทสามารถท าใหคาระดบสญญาณทางเอาตพตมคาเปน “0” ได คอ คาระดบสญญาณทางดานอนพตจะตองมคาเปน “1” ทกอนพต ในสภาวะอนจะใหคาระดบสญญาณเปน “1” เราสามารถเขยนสมการหรอฟงกชนการท างานของ แนนดเกต ไดดงสมการ BAF
นอกจากนแลวแนนดเกตยงเปนเกตอเนกประสงคทสามารถทจะน าไปท าเปนเกตชนดอนๆไดอกดงตารางท 7.2
116 การออกแบบวงจรลอจกดวย 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;
118 การออกแบบวงจรลอจกดวย VHDL
รปท 7.13 การแทนแนนดเกตดวยภาษา VHDL 7.2.5 นอรเกต (NOR Gate) นอรเกต เปนอปกรณลอจกเกตทเกดจากการน าเอา ออรเกต และนอตเกต มาใชงาน รวมกน โครงสราง และสญลกษณแสดงดงรปท 7.14
รปท 7.14 สญลกษณ โครงสรางสมมล และตารางการท างานของนอรเกต
จากตารางการท างานของ นอรเกต คาระดบสญญาณทางเอาตพตมโอกาสเปน “1” ไดในกรณเดยว คอคาระดบสญญาณทางดานอนพตทงหมดจะตองเปน “0” และเมอใดทคาระดบสญญาณทางอนพตหนงอนพตใดเปน “1” จะสงผลใหคาระดบสญญาณทางเอาตพตเปน “0” สามารถเขยนสมการหรอฟงกชนการท างานของนอรเกต ไดดงสมการ BAF
การออกแบบวงจรลอจกดวย 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;
--------------------------------------------------
120 การออกแบบวงจรลอจกดวย VHDL
รปท 7.15 การแทนนอรเกตดวยภาษา VHDL 7.2.6 เอกคลซฟออรเกต (Exclusive OR Gate) อปกรณลอจกเกตทไดกลาวมา สามารถสรปไดวา เปนการสรางเพอตอบสนองการ
ท างานทแตกตางกนออกไป เอกคลซฟออรเกต กเชนเดยวกน แต เอกคลซฟออรเกต เปนเกตทคอนขางแตกตางไปจากกลมทไดกลาวมา ลกษณะการท างานของ เอกคลซฟออรเกต สามารถจดไดวาเปนอปกรณลอจกเกตทมการท างานในลกษณะการเปรยบเทยบคาระดบสญญาณทางอนพต
รปท 7.16 สญลกษณ โครงสรางสมมล และตารางการท างานของเอกคลซฟออรเกต
จากตารางการท างาน จะเปนการเปรยบเทยบคาระดบสญญาณอนพต ในกรณทคาระดบสญญาณทางอนพตมความแตกตาง ตางระดบสญญาณทางเอาตพตของ เอกคลซฟออรเกต จะมคาเปน “1” แตถาคาระดบสญญาณทางอนพตเหมอนกน จะไดคาระดบสญญาณทางเอาตพตเปน “0” เราสามารถเขยนสมการหรอฟงกชนการท างานของ เอกคลซฟออรเกต ไดดงสมการ BAF
การออกแบบวงจรลอจกดวย 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;
-----------------------------------------------
122 การออกแบบวงจรลอจกดวย VHDL
รปท 7.17 การแทนเอกคลซฟออรเกต ดวยภาษา VHDL 7.2.7 เอกคลซฟนอรเกต (Exclusive NOR Gate) เอกคลซฟนอรเกต เปนเกตทเราน าเอา เอกคลซฟออรเกต และนอตเกต มาตอเขาดวยกน
คาสญญาณเอาตพตของ เอกคลซฟนอรเกต จะใหผลทตรงกนขามกบ เอกคลซฟออรเกต
รปท 7.18 สญลกษณ โครงสรางสมมล และตารางการท างานของเอกคลซฟนอรเกต
ผลการท างานของเอกคลซฟนอรเกต กรณคาระดบสญญาณทปอนเขาทางดานอนพตมคาเทากน จะใหผลคาระดบสญญาณทางดานเอาตพตเปน “1” แตในกรณคาสญญาณทปอนใหทางอนพตมคาไมเทากน ผลของคาระดบสญญาณทไดทางดานเอาตพตจะเปน “0” เราสามารถเขยนสมการหรอฟงกชนการท างานของ เอกคลซฟนอรเกตไดดงสมการ BAF
การออกแบบวงจรลอจกดวย 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;
----------------------------------------------------------------------
124 การออกแบบวงจรลอจกดวย VHDL
รปท 7.19 การแทนเอกคลซฟนอรเกต ดวยภาษา VHDL 7.2.8 บฟเฟอร (Buffer) บฟเฟอร เปนเกตทไมคอยจะมบทบาทมากนก ส าหรบนกออกแบบมอใหม เพราะ
บฟเฟอรใหคาระดบสญญาณทางดานเอาตพต เหมอนระดบสญญาณทางดานอนพต หนาทของบฟเฟอร สามารถน าไปเปนตวขบคาระดบสญญาณใหมความแรงยงขน และสามารถน าไปชวยแกปญหา ทเกดจากการหนวงสญญาณ (Propagation Delay Time) สมการหรอฟงกชนของบฟเฟอร คอ AF
รปท 7.20 สญลกษณ และตารางการท างานของบฟเฟอร
การออกแบบวงจรลอจกดวย 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(
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 ))((
การออกแบบวงจรลอจกดวย 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
128 การออกแบบวงจรลอจกดวย VHDL
รปท 7.26 ตวอยางของการเขยน Timing Diagram
ขอบขาขนของสญญาณ หมายถง ชวงของการเปลยนแปลงจากคาระดบสญญาณ “0” ไปเปน “1” (Active HIGH)ขอบขาลงของสญญาณ หมายถง ชวงของการเปลยนแปลงจากคาระดบสญญาณ “1” ไปเปน “0” (Active LOW)
รปท 7.27 ลกษณะของสญญาณ Clock เราสามารถออกแบบวงจรลอจกจากตารางความจรงหรอสมการทก าหนดใหได ในท านองเดยวกนเรากสามารถทจะออกแบบวงจรลอจกจาก Timing Diagram ไดเชนเดยวกน ตวอยางท 7.6 จงออกแบบวงจรลอจกจาก Timing Diagram ตอไปน
การออกแบบวงจรลอจกดวย 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
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
)(
)(
)(
)()(
การออกแบบวงจรลอจกดวย VHDL 131
แบบฝกหดท 7
1. จงตอบค าถามตอไปน (ก) เกตทใหเอาตพตตรงกนขามกบอนพตคอเกตชนดใด (ข) เกตทใหเอาตพต 0 เมออนพตตวใดตวหนงหรอทงหมดเปน 0 คอเกตชนดใด
(ค) เกตทใหเอาตพตเปน 0 เมออนพตมลอจกตางกนคอเกตชนดใด
2. จากวงจรใชแทนเกตชนดใด (ก) (ข)
(ค) (ง)
3. จากวงจรเอาตพต Y มคาเทากบเทาใด
(ก)
(ข)
(ค)
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 ))((