分频器逻辑没有问题,为什么仿真输出恒为1??

2019-07-16 00:13发布

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENtiTY EVEN_DIVIDER IS
GENERIC(N:INTEGER :=8);
PORT(
CLKIN: IN STD_LOGIC;
CLKOUT:OUT STD_LOGIC;
CNT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END EVEN_DIVIDER;

ARCHITECTURE RTL OF EVEN_DIVIDER IS
SIGNAL COUNT:INTEGER;
BEGIN
该程序实现8分频,送入输入时钟,输出时钟恒为’1‘,请问为何
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
dj120110
2019-07-16 02:17
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY EVEN_DIVIDER IS
GENERIC(N:INTEGER :=8);
PORT(
CLKIN: IN STD_LOGIC;
CLKOUT:OUT STD_LOGIC;
CNT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END EVEN_DIVIDER;

ARCHITECTURE RTL OF EVEN_DIVIDER IS
SIGNAL COUNT:INTEGER;
BEGIN
        PROCESS (CLKIN)
                BEGIN
                        IF CLKIN'EVENT AND CLKIN='1' THEN
                                IF COUNT=N-1 THEN
                                        COUNT<=0;
                                ELSE
                                        COUNT<=COUNT+1;
                                        IF COUNT<INTEGER(N/2) THEN
                                                CLKOUT<='1';
                                        ELSE
                                                CLKOUT<='0';
                                        END IF;
                                END IF;
                        END IF;       
        END PROCESS;
        CNT<=CONV_STD_LOGIC_VECTOR(COUNT,3);
END RTL;
                                       
上面程序粘掉了

一周热门 更多>