Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Where is timing loop in my design?

Kevsh

Newbie
Newbie level 3
Joined
Jul 11, 2024
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
48
Here is VHDL-code of a simple frequency devision circuit:
Code:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity freq_div is
Port ( 
    clk_in: in std_logic;
    div: in std_logic_vector(7 downto 0);
    clk_out: out std_logic
);
end freq_div;

architecture Behavioral of freq_div is
    
    signal cnt : unsigned(7 downto 0) := (others => '0');
    signal ib_div : std_logic_vector(7 downto 0);
    
begin

    ib_div <= div;

    p_div: process(clk_in)
    begin
        if (cnt = unsigned(div)) then
            cnt <= (others => '0');
            clk_out <= '1';
        else
            cnt <= cnt + 1;
            clk_out <= '0';
        end if;
    end process;

end Behavioral;
I received critical warning: [Synth 8-295] found timing loop. I can't find here a timing loop...
 
Missing edge sensitive condition, e.g.

if rising_edge(clk_in) then

Without it, your HDL defines a purely combinational hardware and doesn't synthesize registers. Process sensitivity list is ignored in synthesis.
 

LaTeX Commands Quick-Menu:

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top