四分频(VHDL语言)不知错在哪里

2019-07-16 01:58发布

各位朋友,大家好!
我刚学习FPGA,选择的是VHDL语言,试着编写了一个二分频和四分频的程序,二分频成功了,但四分频却有问题,代码如下:
library ieee;
use ieee.std_logic_1164.all;

entity divclk is
    port
    (
        -- Input ports
        inclk    : in  std_logic;
        outclk    : out  std_logic
    );
end divclk;

architecture one of divclk is

    signal tmp : std_logic;
    signal count : integer;

begin

    process(inclk)
    begin
        if(inclk'event and inclk = '1') then
            count <= count + 1;
            if(count = 2) then
                tmp <= not tmp;
                count <= 0;
            end if;            
        end if;
        outclk <= tmp;
    end process;

end one;
输出时钟outclk总是保持低电平,看了半天没有找到错误,还请各位帮忙指教一下!拜托了。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
~不知所云~
1楼-- · 2019-07-16 02:53
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity divclk is
    port
    (
        -- Input ports
        inclk    : in  std_logic;
        outclk    : out  std_logic
    );
end divclk;

architecture one of divclk is

    signal tmp : std_logic;
    signal count : std_logic_vector(1 downto 0);

begin

    process(inclk)
    begin
        if(inclk'event and inclk = '1') then
            
            if(count = "01") then
               
                count <= (others=>'0');
                tmp <= not tmp;
            else
            count <= count + 1;
            end if;            
        end if;
      
    end process;
outclk <= tmp;

end one;
wdhruien
2楼-- · 2019-07-16 03:20
~不知所云~ 发表于 2012-11-28 16:27
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;

嗯,学习了,谢谢啦,还有一个请求,能不能解释一下原来那样为什么不行,想知其所以然。
梅甜秋子
3楼-- · 2019-07-16 06:44
count <= (others=>'0');
这句话是什么意思
梅甜秋子
4楼-- · 2019-07-16 09:21
~不知所云~ 发表于 2012-11-28 16:27
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;

count <= (others=>'0');
这句话是什么意思
wdhruien
5楼-- · 2019-07-16 10:52
 精彩回答 2  元偷偷看……

一周热门 更多>