EmbDev.net

Forum: FPGA, VHDL & Verilog Progam in VHDL for a ttl finder


von Jose Maria (Guest)


Rate this post
useful
not useful
Hello,

I want to create a circuit which has two inputs a clock and an enable 
and three outputs. What I want this circuit to do is that it has a 
variable (cont) that goes from "00" to "11" and two of the outputs 
(sal_1 and sal_2) take the values of cont(0) and cont(1) and go to the 
inputs of a ttl ic (AND , OR, XOR) and then the output of the ttl ic 
goes back to the circuit and is saved (results) after that, the vector 
that is created from the differents results of the ttl ic ouputs is 
compared with vectors already predefined and find the one that matches 
it and returns the value.

I have a hard time with the output and then input times, it seems that 
there is a special way to do this.

Here is my code:

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;

use IEEE.std_logic_arith.all;

entity ttl_finder is
  port( clk, ena, sal_ttl : in  std_logic;
      sal_1, sal_2      : out std_logic;
      sal_f          : out std_logic_vector(3 downto 0));

end entity;

architecture ttl_tester of ttl_finder is

signal cont : std_logic_vector(1 downto 0) := "00";
signal results : std_logic_vector(3 downto 0) := "0000";

begin

process(clk, ena)


variable c : std_logic;
variable d : std_logic;
variable e : std_logic;

begin

if ena = '1' then

  if cont < "11" then

    sal_1 <= cont(0);
    sal_2 <= cont(1);

    if rising_edge(clk) then

      results(conv_integer(cont)) <= sal_ttl;

    end if;

    cont <= cont + 1;

  else

    sal_1 <= cont(0);
    sal_2 <= cont(1);

    if rising_edge(clk) then

      results(conv_integer(cont)) <= sal_ttl;

    end if;

    cont <= "00";

  end if;

end if;

end process;

sal_f <= results;

end ttl_tester;

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.