我为斯巴达3E板编写了VGA控制器的VHDL代码.代码模拟并且在没有下面代码中的重置和clk过程的情况下运行良好.但是在插入进程(reset,clk)之后,h_count和v_count计数器停止计数并在模拟中被驱动为未定义的XXXXX.我哪里错了.代码工作完美,没有clk,重置过程(粗体注释),我也测试了harware上的代码.
VGA控制器的代码
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity vga_controller is
port(clk : inout std_logic;
clk_50 : in std_logic;
hsync, vsync : out std_logic;
video_on : out std_logic;
x_pos, y_pos : out std_logic_vector(9 downto 0);
sw : in std_logic_vector(2 downto 0) := "100";
rgb : out std_logic_vector(2 downto 0)
);
end vga_controller;
architecture Behavioral of vga_controller is
signal h_count, v_count : unsigned(9 downto 0) := (others => '0');
begin
-- Frequency divider to get 25 MHz clk from 50 MHz …Run Code Online (Sandbox Code Playgroud) vhdl ×1