请教VHDL

[复制链接]
查看11 | 回复1 | 2009-1-16 08:44:09 | 显示全部楼层 |阅读模式
两个输入端CLK1=1KHZ和按键S1,一个输出端OUT,要在S1上升沿时输出CLK2=128HZ持续128MS后输出CLK1,最好给点程序
architecture div of fen is
signal Q:std_logic_vector(7 downto 0);
signal R:std_logic_vector(7 downto 0);
signal D:std_logic;
signal C:std_logic;
begin
PROCESS(F6)--F6为1KHZ输入
BEGIN
IF F6'EVENT AND F6='1' THEN
IF(Q="11111111")THEN
Q<="00000000";
ELSE
Q <= Q + 1;
END IF;
END IF;
END PROCESS;
D <= Q(2);--分频128HZ
PROCESS(F5)--按键S1
BEGIN
IF rising_edge(F5) THEN
F7 <= D;
--延时128MS---------------这怎么写,我用计数器没整明白,错误说有多个量控制 F7
F7 <= F6;
end if;
end process;
end div;
你能不能不捣乱

回复

使用道具 举报

千问 | 2009-1-16 08:44:09 | 显示全部楼层
有两个问题。第一“F7 <= D; --延时128MS----这怎么写,我用计数器没整明白,错误说有多个量控制 F7 F7 <= F6;” 两行里,没有经过判断选择,就对F7连续赋值两次,F7<=D不会起作用。你的D已经实现了分频作用,不用你再进行翻转。 把F7<=F6去掉就行。 第二,在S1上升沿需要进行延迟判断,你的判断呢? 补充一点,可以把F5和F6并在一个PROCESS里,这样倒是方便判断了。 可以参考一下 http://zhidao.baidu.com/question/56511775.html?si=7===============================================...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行