刚开始学习使用BASYS2板,自己的第一个VHDL程序就是一个跑马灯,然后因为这个程序是网上找的然后自己改的,测试完全可以运行,现写上我对这个程序的理解,如果错了还希望大家指正。
程序源代码:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity testdomo is
PORT( clock : in std_logic;
row:out std_logic_vector(0 to 7));
end testdomo;
architecture Behavioral of testdomo is
CONSTANT fp_clka:INTEGER:=6250000; --时钟频率50MHz的1/8
SIGNAL a: INTEGER RANGE 0 TO 6250001;
signal saomiao :integer range 0 to 9;
SIGNAL clka: std_logic;
BEGIN
PROCESS (clock)
BEGIN
IF rising_edge(clock) THEN
IF a<fp_clka then
a<=a+1;
clka<=clka;
ELSE
a<=0;
clka<= NOT clka; --clka产生一次跳变信号,
end if;
end if;
end process;
process(clka) --clka作为进程敏感信号
BEGIN
IF rising_edge(clka) THEN
saomiao<=saomiao+1;
if saomiao=9 then
saomi