OpenCores
URL https://opencores.org/ocsvn/russels_paradox/russels_paradox/trunk

Subversion Repositories russels_paradox

[/] [russels_paradox/] [trunk/] [barber.vhd] - Diff between revs 2 and 3

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 3
Line 19... Line 19...
use IEEE.std_logic_1164.all;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_unsigned.all;
 
 
entity barbers is
entity barbers is
    Port ( a_barber_shaves_event : in  STD_LOGIC;
    Port ( big_bang : in  STD_LOGIC;
 
                a_barber_shaves_event : in  STD_LOGIC;
           a_barber_doesnt_shave_event : in  STD_LOGIC; --like for a day...
           a_barber_doesnt_shave_event : in  STD_LOGIC; --like for a day...
           number_of_barbers_who_may_shave_themselves : out  STD_LOGIC;
           number_of_barbers_who_may_shave_themselves : out  STD_LOGIC;
           number_of_barbers_who_may_not_shave_themselves : out  STD_LOGIC);
           number_of_barbers_who_may_not_shave_themselves : out  STD_LOGIC);
end barbers;
end barbers;
 
 
architecture simulateable of barbers is
architecture simulateable of barbers is
 
 
begin
begin
 
 
   process(a_barber_shaves_event, a_barber_doesnt_shave_event)
   process(big_bang, a_barber_shaves_event, a_barber_doesnt_shave_event)
   begin
   begin
      if big_bang = '1' then
      if big_bang = '1' then
         number_of_barbers_who_may_shave_themselves <= x"0";
         number_of_barbers_who_may_shave_themselves <= x"0";
         number_of_barbers_who_may_not_shave_themselves <= x"f";
         number_of_barbers_who_may_not_shave_themselves <= x"f";
      else
      else
Line 48... Line 49...
 
 
   signal counter1, counter2 : std_logic_vector(3 downto 0);
   signal counter1, counter2 : std_logic_vector(3 downto 0);
 
 
begin
begin
 
 
   process(a_barber_shaves_event)
   process(big_bang, a_barber_shaves_event)
   begin
   begin
      if big_bang = '1' then
      if big_bang = '1' then
         counter1 <= x"f";
         counter1 <= x"f";
      elsif rising_edge(a_barber_shaves_event) then
      elsif rising_edge(a_barber_shaves_event) then
         counter1 <= counter1 + '1';
         counter1 <= counter1 + '1';
      end if;
      end if;
   end process;
   end process;
 
 
   process(a_barber_doesnt_shave_event)
   process(big_bang, a_barber_doesnt_shave_event)
   begin
   begin
      if big_bang = '1' then
      if big_bang = '1' then
         counter2 <= x"0";
         counter2 <= x"0";
      elsif rising_edge(a_barber_doesnt_shave_event) then
      elsif rising_edge(a_barber_doesnt_shave_event) then
         counter2 <= counter2 + '1';
         counter2 <= counter2 + '1';

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.