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

Subversion Repositories manchesterwireless

[/] [manchesterwireless/] [branches/] [singledouble/] [synthTest.vhd] - Rev 6

Compare with Previous | Blame | View Log

library ieee;
use ieee.std_logic_1164.all;
 
use work.globals.all;
 
entity synthTest is
  port (
    clk_i             : in std_logic;
    rst_i             : in std_logic;
    data_i            : in std_logic;
    ready_o           : out std_logic;
    character_o       : out std_logic_vector(0 to 7);
    anode_ctrl        : out std_logic_vector(3 downto 0);
    recieved_debug    : out std_logic_vector(3 downto 0);
    waitforstart_rdy  : out std_logic;
    testpin           : out std_logic
  );
end synthTest;
 
architecture Behavioral of synthTest is
 
  component manchesterWireless
  port (
    clk_i             : in  std_logic;
    rst_i             : in  std_logic;
    data_i            : in  std_logic;
    q_o               : out std_logic_vector(WORD_LENGTH-1 downto 0);
    ready_o           : out std_logic;
    recieved_debug : out std_logic_vector(3 downto 0);
    waitforstart_rdy : out std_logic    
  );
  end component; 
 
  signal decode_output : std_logic_vector(WORD_LENGTH-1 downto 0);
  signal ud_buff1, ud_buff1_reg : std_logic_vector(6 downto 0);
  signal reset_manchester, soft_reset, ready_o_buff : std_logic;
begin
  character_o(7) <= '1'; -- turn off decimal point
  testpin <= '1';
 
  reset_manchester <=  rst_i or soft_reset;
  ready_o <= ready_o_buff;
 
  inst_manchesterWireless : manchesterWireless
  port map(
    clk_i   => clk_i,
    rst_i   => reset_manchester,
    data_i  => data_i,
    q_o     => decode_output,
    ready_o => ready_o_buff,
    recieved_debug => recieved_debug, 
    waitforstart_rdy => waitforstart_rdy
  );
 
  -- decode digit
  with decode_output(3 downto 0) select
     ud_buff1  <= "0000001" when x"0",  -- off
                   "1001111" when x"1",  -- 1
                   "0010010" when x"2",  -- 2
                   "0000110" when x"3",  -- 3
                   "1001100" when x"4",  -- 4
                   "0100100" when x"5",  -- 5
                   "0100000" when x"6",  -- 6
                   "0001111" when x"7",  -- 7
                   "0000000" when x"8",  -- 8
                   "0000100" when x"9",  -- 9
                   "0110000" when others; -- Error
 
  process (clk_i,rst_i)
  begin  
     if rst_i = '1' then
       soft_reset <= '0';
       ud_buff1_reg <= "1111111";
     elsif (clk_i'event and clk_i = '1') then
       -- register the output
       if (ready_o_buff = '1') then
        ud_buff1_reg <= ud_buff1;
        soft_reset <= '1';
       else
        soft_reset <= '0';
       end if;
 
     end if;
  end process;
 
  character_o(0 to 6) <= ud_buff1_reg;
  anode_ctrl <= "0111";  
 
end Behavioral;
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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