计算机监视器响应时间测量系统 - VHDL

时间:2013-06-18 11:10:38

标签: vhdl vga

我在工作实习中,我在VHDL中有这个主题:计算机监视器响应时间的测量系统。 为了成功,我想把一个光电二极管放在显示器前面,然后每秒钟在显示器上切换黑白,知道响应时间。 但是我真的不知道如何制作它,我使用通过VGA在显示器上连接的斯巴达3。 我对一个程序不对,我不确定它是否正确,(我认为这是错误的)。我告诉你我的节目:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL
USE IEEE.NUMERIC_STD.ALL

ENTITY Counter IS
        PORT(clk, rst : IN STD_LOGIC;
             sync, PhD : IN STD_LOGIC;
             s        : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END ENTITY Counter;

ARCHITECTURE Main OF Counter IS
SIGNAL q : UNSIGNED (3 DOWNTO 0);
BEGIN
    s <= STD_LOGIC_VECTOR(q);
    PROCESS (clk, rst) IS
        BEGIN
            IF rst='1' THEN
               q<=(OTHERS => '0');
            ELSIF RISING_EDGE(clk) THEN
                IF sync='0' THEN
                    q=q;
                ELSIF sync='1' THEN
                    IF PhD='0' THEN
                    q<=q+1;
                    ELSIF PhD='1' THEN
                    q=q;
                    END IF;
                END IF;
            END IF;
    END PROCESS;
END ARCHITECTURE Mai

N;

告诉我,如果你需要更多东西,也许我会忘记一些东西。并告诉我你的计划是什么。

1 个答案:

答案 0 :(得分:0)

你写的是一个计数器,它在每个时钟周期递增,同步为1,phd为0.在不知道你的确切要求的情况下,很难说这是否是你想要的。

如果要确定同步变高和phd变高之间的时间量,则应在sync = 0时将q设置为0。这将导致计数器在每次同步变为高电平时从0开始。

您可能还应该增加q的宽度,具体取决于您的时钟速度。目前它只有4位,这意味着它将每16个周期回绕到0。给定典型的时钟频率(例如100MHz),这小于一微秒。要在100 MHz下计数一秒,您需要一个至少27位的计数器。