T
TheRain
Guest
Hey, I was wondering if someone could tell me why my inputs do not
drive logic for this VHDL code. I am new to VHDL and am studying
digital logic. I'm coming from C++ background so that may be part of
my problem in getting this. The warnings I get are:
Warning: Reduced register "MIDIOUT2:inst|MIDIOut" with stuck data_in
port to stuck value VCC
Warning: Output pins are stuck at VCC or GND
Warning: Pin "Out" stuck at VCC
Warning: Design contains 2 input pin(s) that do not drive logic
Warning: No output dependent on input pin "In"
Warning: No output dependent on input pin "Clock"
And my waveform after simulation is stuck at high no matter what
variances or clock speeds I put in.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY MIDIOUT2 IS
PORT(IN1 :IN STD_LOGIC;
Clock :IN STD_LOGIC;
MIDIOut :OUT STD_LOGIC);
END MIDIOUT2;
ARCHITECTURE midipump of MIDIOUT2 is
signal midibuffer: std_logic;
BEGIN
PROCESS
variable midicommand:std_logic_vector(9 downto 0);
variable data1:std_logic_vector(9 downto 0);
variable data2:std_logic_vector(9 downto 0);
BEGIN
wait until clock='1' AND clock'EVENT; --trigger at positive edge of
clock
--press1 := '0';
--press2 := '0';
--press3 := '0';
--press4 := '0';
--IN1 button process block****************************************
if IN1 = '1' then
midicommand := "0000010011";
data1 := "0010100100";
data2 := "1010001110";
for i in 0 to 9 loop
midibuffer <= midicommand(i);
end loop;
for i in 0 to 9 loop
midibuffer <= data1(i);
end loop;
for i in 0 to 9 loop
midibuffer <= data2(i);
end loop;
else
midicommand := "1111111111";
data1 := "1111111111";
data2 := "1111111111";
midibuffer <= '1';
end if;
end process;
-- concurrent assignement
MIDIOut<=midibuffer;
end architecture midipump;
This is actually part of a much larger lump of code, but I trimmed it
down to try and narrow the problem for myself.
drive logic for this VHDL code. I am new to VHDL and am studying
digital logic. I'm coming from C++ background so that may be part of
my problem in getting this. The warnings I get are:
Warning: Reduced register "MIDIOUT2:inst|MIDIOut" with stuck data_in
port to stuck value VCC
Warning: Output pins are stuck at VCC or GND
Warning: Pin "Out" stuck at VCC
Warning: Design contains 2 input pin(s) that do not drive logic
Warning: No output dependent on input pin "In"
Warning: No output dependent on input pin "Clock"
And my waveform after simulation is stuck at high no matter what
variances or clock speeds I put in.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY MIDIOUT2 IS
PORT(IN1 :IN STD_LOGIC;
Clock :IN STD_LOGIC;
MIDIOut :OUT STD_LOGIC);
END MIDIOUT2;
ARCHITECTURE midipump of MIDIOUT2 is
signal midibuffer: std_logic;
BEGIN
PROCESS
variable midicommand:std_logic_vector(9 downto 0);
variable data1:std_logic_vector(9 downto 0);
variable data2:std_logic_vector(9 downto 0);
BEGIN
wait until clock='1' AND clock'EVENT; --trigger at positive edge of
clock
--press1 := '0';
--press2 := '0';
--press3 := '0';
--press4 := '0';
--IN1 button process block****************************************
if IN1 = '1' then
midicommand := "0000010011";
data1 := "0010100100";
data2 := "1010001110";
for i in 0 to 9 loop
midibuffer <= midicommand(i);
end loop;
for i in 0 to 9 loop
midibuffer <= data1(i);
end loop;
for i in 0 to 9 loop
midibuffer <= data2(i);
end loop;
else
midicommand := "1111111111";
data1 := "1111111111";
data2 := "1111111111";
midibuffer <= '1';
end if;
end process;
-- concurrent assignement
MIDIOut<=midibuffer;
end architecture midipump;
This is actually part of a much larger lump of code, but I trimmed it
down to try and narrow the problem for myself.