Estoy tratando de encontrar el Fmax de mi diseño VHDL en Quartus II. Sé que necesita tener una ruta de registro a registro para encontrar el Fmax. Sin embargo, cuando registro la entrada, se agrega otro ciclo. Quiero que el código sea de 1 ciclo y aún muestre Fmax.
Código con entradas registradas:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity generic_RBSD is
generic(
BIN_WIDTH : integer := 4
);
port(
bin_input : in signed(BIN_WIDTH-1 downto 0);
RBSD_output : out STD_LOGIC_VECTOR(2*BIN_WIDTH-1 downto 0);
clk : in STD_LOGIC
);
end entity;
architecture behavioral of generic_RBSD is
signal a : signed(BIN_WIDTH-1 downto 0);
begin
process(clk)
variable bin : signed(BIN_WIDTH-1 downto 0);
variable RBSD : STD_LOGIC_VECTOR(2*BIN_WIDTH-1 downto 0);
begin
if rising_edge(clk) then
a <= bin_input;
if bin_input(BIN_WIDTH-1) = '1' then
bin := -a;
else
bin := a;
end if;
for i in 0 to BIN_WIDTH-1 loop
if bin(i) = '1' then
RBSD(2*i+1 downto 2*i) := "11";
else
RBSD(2*i+1 downto 2*i) := "10";
end if;
end loop;
if bin_input(BIN_WIDTH-1) = '1' then
RBSD := not RBSD;
end if;
end if;
RBSD_output <= RBSD;
end process;
end architecture;
Sin entradas registradas (funciona, pero no muestra Fmax):
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity generic_RBSD is
generic(
BIN_WIDTH : integer := 4
);
port(
bin_input : in signed(BIN_WIDTH-1 downto 0);
RBSD_output : out STD_LOGIC_VECTOR(2*BIN_WIDTH-1 downto 0);
clk : in STD_LOGIC
);
end entity;
architecture behavioral of generic_RBSD is
signal a : signed(BIN_WIDTH-1 downto 0);
begin
process(clk)
variable bin : signed(BIN_WIDTH-1 downto 0);
variable RBSD : STD_LOGIC_VECTOR(2*BIN_WIDTH-1 downto 0);
begin
if rising_edge(clk) then
if bin_input(BIN_WIDTH-1) = '1' then
bin := -bin_input;
else
bin := bin_input;
end if;
for i in 0 to BIN_WIDTH-1 loop
if bin(i) = '1' then
RBSD(2*i+1 downto 2*i) := "11";
else
RBSD(2*i+1 downto 2*i) := "10";
end if;
end loop;
if bin_input(BIN_WIDTH-1) = '1' then
RBSD := not RBSD;
end if;
end if;
RBSD_output <= RBSD;
end process;
end architecture;