بخشی از پاورپوینت

اسلاید 1 :

به نام خدا

نمونه هایی از برنامه های VHDL

اسلاید 2 :

مدار های ترکیبی

دیکدر لامپ های هفت قسمتی

یکی از دیکدر هایی که اغلب به کار برده می شود،دیکدر 4 به 7 برای تبدیل کد bcd به کد هفت بیتی برای لامپ های seven segment می باشد.

اسلاید 3 :

مثال:برنامه ای بنویسید که به کمک دیکدر تمامی شماره های یک seven segment را نمایش دهد.

library IEEE;
use IEEE.std_logic_1164.all;
entity seveseg is
port (
D: in STD_LOGIC_VECTOR (3 downto 0);
S: out STD_LOGIC_VECTOR (6 downto 0) );
end seveseg;
--S=abcdefg
architecture seveseg_arch of seveseg is
begin
with D select

اسلاید 4 :

S <= "1111110" when "0000",-- Display 0
"0110000" when "0001",-- Display 1
"1101101" when "0010",-- Display 2
"1111001" when "0011",-- Display 3
"0110011" when "0100",-- Display 4
"1011011" when "0101",-- Display 5
"0011111" when "0110",-- Display 6
"1110000" when "0111",-- Display 7
"1111111" when "1000",-- Display 8
"1110011" when "1001",-- Display 9
"0000000" when others;-- Blank for non decimal
end seveseg_arch;

اسلاید 5 :

سیمولیت

اسلاید 6 :

فلیپ فلاپ ها
برای ذخیره یک بیت اطلاعات است که مهم ترین آن ها فلیپ فلاپ D و T می باشد.

اسلاید 7 :

مثال : برنامه ای برای فلیپ فلاپ D بنویسید که اگر ورودی CLR برابر صفر شود خروجی q-out فلیپ فلاپ برابر صفر شود، در غیر این صورت اگر لبه بالا رونده پالس ساعت رخ دهد، اطلاعات وردی D به خروجی q منتقل شود

ibrary IEEE;
use IEEE.std_logic_1164.all;
entity flipd is
port (
d: in STD_LOGIC;
clk: in STD_LOGIC;
clr: in STD_LOGIC;
q_out: out STD_LOGIC );
end flipd;
architecture flipd_arch of flipd is

اسلاید 8 :

begin
process (clk,clr)
begin
if clr='0' then
q_out <='0';
elsif (clk'event and clk='1') then
q_out <=d;
end if;
end process;
end flipd_arch;

اسلاید 9 :

سیمولیت

اسلاید 10 :

مثال : برنامه ای برای فلیپ فلاپ T بنویسید که در لبه بالارونده پالس ساعت CLK ،اگر وردی T برابر یک باشد خروجی Q مکمل شود در غیر این صورت Q تغییر نکند.

library IEEE;
use IEEE.std_logic_1164.all;
entity flipt is
port (
t,clk: in STD_LOGIC;
q: buffer STD_LOGIC );
end flipt;
architecture flipt_arch of flipt is
begin

اسلاید 11 :

process (clk)
begin
if (clk'event and clk='1') then
if t='1' then
q<=not(q);
else
q<=q;
end if;
end if;
end process;
end flipt_arch;

اسلاید 12 :

سیمولیت

اسلاید 13 :

ثبات ها
ثبات ها برای ذخیره اطلاعت از تعدادی فلیپ فلاپ تشکیل شده است

اسلاید 14 :

مثال : برنامه ای برای یک ثبات هشت بیتی با فلیپ فلاپ D بنویسید که در لبه پایین رونده پالس ساعت، اطلاعات وردی D را به خروجی ثبات Q انتقال دهد.

library IEEE;
use IEEE.std_logic_1164.all;
entity registd is
port (
d: in STD_LOGIC_VECTOR (7 downto 0);
clk: in STD_LOGIC;
q: out STD_LOGIC_VECTOR (7 downto 0));
end registd;
architecture registd_arch of registd is
begin

اسلاید 15 :

process (clk)
begin
if (clk'event and clk='0') then
q<=d;
end if;
end process;
end registd_arch;

اسلاید 16 :

مثال : برنامه ای برای یک ثبات هشت بیتی با فلیپ فلاپ D بنویسید که اگر ورودی ریست برابر یک شود خروجی ثبات Q برابر با صفر شود در غیر این صورت در لبه بالارونده پالس ساعت اگر Initial برابر یک گردد خروجی ثبات Q برابر با 11111111 شود در غیر این صورت وردی D به خروجی Q منتقل شود.

library IEEE;
use IEEE.std_logic_1164.all;
entity registdr is
port (
D : in std_logic_vector(0 to 7);
Clk,reset,Initial : in std_logic;
Q : out std_logic_vector(o to 7) );
End registdr;
Architecture registdr_arc of registdr is
Begin

اسلاید 17 :

Process(clk,reset)
Begin
If (reset = ‘1’) then
Q <= b”00000000”;
Elsif (clk’event and clk=‘1’) then
if (initial = ‘1’) then
q <= b”11111111”;
else
q <= d;
end if;
End if;
End process;
End registdr_arch;

اسلاید 18 :

ثبات شیفت دهنده
ثبات شیفت دهنده ثباتی است که در لبه پالس ساعت اطلاعات آن یک بیت به راست و چپ شیفت داده می شود.

اسلاید 19 :

مثال : برنامه ای بنویسید که در لبه بالا رونده پالس ساعت محتویات یک ثبات هشت بیتی را یک بیت به طرف راست شیفت دهد

library IEEE;
use IEEE.std_logic_1164.all;
entity shift1 is
port (
clk: in STD_LOGIC;
seri_rig: in STD_LOGIC;
qout: buffer STD_LOGIC_VECTOR (7 downto 0) );
end shift1;
architecture shift1_arch of shift1 is
begin
process(clk)

اسلاید 20 :

begin
if (clk'event and clk='1') then
qout(6 downto 0)<=qout(7 downto 1);
qout(7)<=seri_rig;
end if;
end process;
end shift1_arch;

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید