请教VHDL

来源:百度知道 编辑:UC知道 时间:2024/06/25 02:10:39
两个输入端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;
你能不能不捣乱

有两个问题。第一“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

=================================================
你在这也问了吧?http://zhidao.baidu.com/question/82214210.html?si=1
这个CLK1=128HZ,是要你自己分频得到啊,还是另有一个输入啊?你这个结构不准备大改动是么?是要人帮你写个判断么?