Altera_Forum
Honored Contributor
17 years agoAlu
Hey all,
This is my first experience with Quartus and VHDL and I am trying to make an ALU. Below is the code I have got so far. LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_signed.ALL; USE ieee.std_logic_arith.ALL; ENTITY alu IS PORT( a : IN STD_LOGIC_VECTOR(11 downto 0); opcode : IN STD_LOGIC_VECTOR(4 downto 0); b : IN STD_LOGIC_VECTOR(11 downto 0); alu_out : OUT STD_LOGIC_VECTOR(11 downto 0); y : BUFFER STD_LOGIC_VECTOR(11 downto 0)); END alu; ARCHITECTURE start OF alu IS BEGIN PROCESS (a, b, opcode,y) BEGIN CASE opcode IS WHEN "000--" => alu_out <= a ; -- Pass a WHEN "001--" => alu_out <= a + b; -- Add (a + b) WHEN "010--" => alu_out <= a - b; -- Subtract (a - b) WHEN "011--" => alu_out <= a and b; -- Logical AND (a AND b) WHEN "100--" => alu_out <= a or b; -- Logical OR (a or b) WHEN "101--" => alu_out <= a + 1; -- Increment A (a+1) WHEN "110--" => alu_out <= a - 1; -- Decrement A (a-1) WHEN "111--" => alu_out <= b; -- Pass b WHEN "---00" => y <= alu_out; -- Pass alu_out to y --WHEN "XXX01" => -- y <= ; -- --WHEN "XXX10" => -- y <= ; -- WHEN "XXX11" => y <= ("000000000000"); -- Pass 0's to y WHEN others => y <= (others => '0'); END CASE; END PROCESS; END start; I get warnings including: Warning (10325): VHDL Choice warning at alu.vhd(21): ignored choice containing meta-value ""000--"" Warning (10034): Output port "alu_out[11]" at alu.vhd(12) has no driver Warning: Output pins are stuck at VCC or GND Warning (13410): Pin "alu_out[0]" is stuck at GND Warning (13410): Pin "alu_out[1]" is stuck at GND Warning (13410): Pin "alu_out[2]" is stuck at GND Warning (13410): Pin "alu_out[3]" is stuck at GND Warning (13410): Pin "alu_out[4]" is stuck at GND Warning (13410): Pin "alu_out[5]" is stuck at GND Warning (13410): Pin "alu_out[6]" is stuck at GND Warning (13410): Pin "alu_out[7]" is stuck at GND Warning (13410): Pin "alu_out[8]" is stuck at GND Warning (13410): Pin "alu_out[9]" is stuck at GND Warning (13410): Pin "alu_out[10]" is stuck at GND Warning (13410): Pin "alu_out[11]" is stuck at GND Warning (13410): Pin "y[0]" is stuck at GND Warning (13410): Pin "y[1]" is stuck at GND Warning (13410): Pin "y[2]" is stuck at GND Warning (13410): Pin "y[3]" is stuck at GND Warning (13410): Pin "y[4]" is stuck at GND Warning (13410): Pin "y[5]" is stuck at GND Warning (13410): Pin "y[6]" is stuck at GND Warning (13410): Pin "y[7]" is stuck at GND Warning (13410): Pin "y[8]" is stuck at GND Warning (13410): Pin "y[9]" is stuck at GND Warning (13410): Pin "y[10]" is stuck at GND Warning (13410): Pin "y[11]" is stuck at GND Warning: Design contains 29 input pin(s) that do not drive logic Warning (15610): No output dependent on input pin "a[0]" Warning (15610): No output dependent on input pin "a[1]" Warning (15610): No output dependent on input pin "a[2]" Warning (15610): No output dependent on input pin "a[3]" Warning (15610): No output dependent on input pin "a[4]" Warning (15610): No output dependent on input pin "a[5]" Warning (15610): No output dependent on input pin "a[6]" Warning (15610): No output dependent on input pin "a[7]" Warning (15610): No output dependent on input pin "a[8]" Warning (15610): No output dependent on input pin "a[9]" Warning (15610): No output dependent on input pin "a[10]" Warning (15610): No output dependent on input pin "a[11]" Warning (15610): No output dependent on input pin "opcode[0]" Warning (15610): No output dependent on input pin "opcode[1]" Warning (15610): No output dependent on input pin "opcode[2]" Warning (15610): No output dependent on input pin "opcode[3]" Warning (15610): No output dependent on input pin "opcode[4]" Warning (15610): No output dependent on input pin "b[0]" Warning (15610): No output dependent on input pin "b[1]" Warning (15610): No output dependent on input pin "b[2]" Warning (15610): No output dependent on input pin "b[3]" Warning (15610): No output dependent on input pin "b[4]" Warning (15610): No output dependent on input pin "b[5]" Warning (15610): No output dependent on input pin "b[6]" Warning (15610): No output dependent on input pin "b[7]" Warning (15610): No output dependent on input pin "b[8]" Warning (15610): No output dependent on input pin "b[9]" Warning (15610): No output dependent on input pin "b[10]" Warning (15610): No output dependent on input pin "b[11]" I think it is to do with using the "-" for dont care in the when statement. Can anybody please help??