这是一个正负脉宽数控调制信号发生器,就是没有运行成功,有的地方看不懂,请教高手帮忙解释一下,谢谢啦!
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY PULSE IS
PORT(CLK:IN STD_LOGIC; --记数时钟
A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位记数预置数
PSOUT:OUT STD_LOGIC); --记数溢出并分频输出
END ENTITY PULSE;
ARCHITECTURE ART OF PULSE IS
COMPONENT LCNT8 IS
PORT(CLK,LD:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CAO:OUT STD_LOGIC));
END COMPONENT LCNT8;
SIGNAL CAO1,CAO2:STD_LOGIC;
SIGNAL LD1,LD2:STD_LOGIC;
SIGNAL PSINT:STD_LOGIC;
BEGIN
U1:LCNT8 PORT MAP(CLK=>CLK,LD=>LD1,D=>A,CAO=>CAO1);
U2:LCNT8 PORT MAP(CLK=>CLK,LD=>LD2,D=>B,CAO=>CAO2);
PROCESS(CAO1,CAO2)IS
BEGIN
IF CAO1='1'THEN PSINT<='0';
ELSIF CAO2'EVENT AND CAO2='1' THEN PSINT<='1';
END IF;
你这是完整的程序吗?问题太多了。LD1 LD2 无输入驱动,PSINT是要输出到PSOUT吗?
本来是个简单的同步逻辑,在这里变成异步的了。
问题是有那么点……找本VHDL书看下,很容易就可以搞定的哈