بخشی از پاورپوینت
اسلاید 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;

