南孤雁2010 发表于 2013-8-7 13:28:24

VHDL程序请教!

看了一段程序不太知道对不对,请教各位大侠帮小弟看看~~~~~~~~~~~~~感激不尽!
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY yana IS
        PORT (CLK,A,B:IN STD_LOGIC;                ——时钟、A、B触发输入
                        Q:OUT STD_LOGIC); ——触发输出
END yana;
ARCHITECTURE WEI OF yana IS
BEGIN
        PROCESS (CLK,A)
                VARIABLE CNTL:INTEGER RANGE 0 TO 4000;————1ms做一次写入操作(CLK为4M)
                VARIABLE X,Y:STD_LOGIC;——————中间变量
BEGIN
        IF CLK'EVENT AND CLK='1' THEN
                IF A='1' THEN X:='1';
                END IF;
                IF B='1' THEN Y:='1';
                END IF;
                IF Y='1' THEN
                        IF CNTL<4000 THEN
                                CNTL:=CNTL+1;
                        ELSE
                                CNTL:=0;
                                X:='0';
                                Y:='0';
                        END IF;
                END IF;
                Q<=X OR Y;
                END IF;
        END PROCESS;
END WEI;


这个模块的功能写的是:有键按下但未完成对存储器的写操作期间,Q口一直为高电平,直到对存储器的写操作。
这个功能能实现么????看不太懂啊………………

gyb1325 发表于 2013-8-7 15:07:44

这个X为什么在操作中没有对他判断,还是A,B这两个键的功能不一样。我现在看的是当你按下B键时,Q口会至高,过1ms后他还会变低,但是只按A的话,Q口会置高,然后不会拉低了。。。。除非还有B再响应

南孤雁2010 发表于 2013-8-7 15:59:08

gyb1325 发表于 2013-8-7 15:07 static/image/common/back.gif
这个X为什么在操作中没有对他判断,还是A,B这两个键的功能不一样。我现在看的是当你按下B键时,Q口会至高 ...

谢谢!
A连的是外接的按键,B我不知道为什么不和RAM相连,怎么能判断RAM是否读完呢?
原理图奉上~

gyb1325 发表于 2013-8-7 13:28:25

南孤雁2010 发表于 2013-8-7 15:59 static/image/common/back.gif
谢谢!
A连的是外接的按键,B我不知道为什么不和RAM相连,怎么能判断RAM是否读完呢?
原理图奉上~ ...

是这个样子:首先你按下A的话他就会拉高Q,Q连的是clr,clr应该是低电平有效吧?那么在高电平期间(1ms)他就完成了对一个数据的读写,B是保持按键状态的,你按下A的话那么就是一瞬间的事,你要等1ms的话,B就在维持这个A 按下的状态

南孤雁2010 发表于 2013-8-7 17:38:30

gyb1325 发表于 2013-8-7 16:23 static/image/common/back.gif
是这个样子:首先你按下A的话他就会拉高Q,Q连的是clr,clr应该是低电平有效吧?那么在高电平期间(1ms) ...

你说的这个意思我懂了~~~谢谢谢谢!
但是YANA这个模块的Q没接CLR……
页: [1]
查看完整版本: VHDL程序请教!