بلاگ شخصی کیوان مهدوی

بلاگ شخصی کیوان مهدوی

به وبلاگ رسمی کیوان مهدوی خوش آمدید

شمارنده ی جانسون

يكشنبه, ۲۴ آذر ۱۳۹۲، ۰۶:۵۷ ب.ظ


هدف از این برنامه طراحی یک شمارنده ی جانسون 4 بیتی است. خروجی این برنامه بر روی LED است.

 

*** یادآوری: این شمارنده به صورت چرخشی اعداد زیر را تولید می کند:

0 > 8 > 12 > 14 > 15 > 7 > 3 > 1 >

 

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

entity johnson is

    Port ( clk1 : in  STD_LOGIC;

              clk2 : in  STD_LOGIC;

              q : out  STD_LOGIC_VECTOR (3 downto 0));

    end johnson;

 

architecture Behavioral of johnson is

signal clk : std_logic;

signal p : std_logic_vector (3 downto 0);

signal st : integer range 0 to 15 :=0;

begin

process(clk1, clk2)

begin

if clk2'event and clk2 = '1' then

clk <= clk1;

end if;

end process;

process (clk)

begin

if clk = '1' and clk'event then

                        if st = 0 then

                                    p <= "1000";

                                    st <= 8;

                        elsif st = 8 then

                                    p <= "1100";

                                    st <= 12;

                        elsif st = 12 then

                                    p <= "1110";

                                    st <= 14;

                        elsif st = 14 then

                                    p <= "1111";

                                    st <= 15;

                        elsif st = 15 then

                                    p <= "0111";

                                    st <= 7;

                        elsif st = 7 then

                                    p <= "0011";

                                    st <= 3;

                        elsif st = 3 then

                                    p <= "0001";

                                    st <= 1;

                        elsif st = 1 then

                                    p <= "0000";

                                    st <= 0;

                        end if;

end if;

end process;

q <= not p;

end Behavioral;

 

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی