M
Mark McDougall
Guest
Hi Xilinx gurus,
I've got some code which I've been running on Altera silcon for several
weeks now, used in a number of different projects, synthesized with
Quartus v8.
It's a simple shift register implemented using a variable in a clocked
process...
process (reset, clk, clk_ena)
variable hactive_v_r : std_logic_vector(3 downto 0) := (others => '0');
begin
if reset = '1' then
hactive_v_r := (others => '0');
elsif rising_edge(clk) and clk_ena = '1' then
...
hactive_v_r := hactive_v_r(hactive_v_r'left-1 downto 0) & hactive_s;
end if;
end process;
BTW 'h_active_s' is a signal declared in the containing entity, and is
definitely not optimised out.
However, when building the project for Xilix under ISE 9.2.03i, I get the
following warnings during synthesis:
WARNING:Xst:653 - Signal <hactive_v_r<3>> is used but never assigned. Tied
to value 0.
WARNING:Xst:1780 - Signal <hactive_v_r<2:0>> is never used or assigned.
As a result, the code doesn't work - the results suggest that this shift
register has indeed been removed from the design.
As I said, this module is used - exactly as-is, in its entirety, in
several Altera modules.
Any idea what my problem is???
Regards,
--
Mark McDougall, Engineer
Virtual Logic Pty Ltd, <http://www.vl.com.au>
21-25 King St, Rockdale, 2216
Ph: +612-9599-3255 Fax: +612-9599-3266
I've got some code which I've been running on Altera silcon for several
weeks now, used in a number of different projects, synthesized with
Quartus v8.
It's a simple shift register implemented using a variable in a clocked
process...
process (reset, clk, clk_ena)
variable hactive_v_r : std_logic_vector(3 downto 0) := (others => '0');
begin
if reset = '1' then
hactive_v_r := (others => '0');
elsif rising_edge(clk) and clk_ena = '1' then
...
hactive_v_r := hactive_v_r(hactive_v_r'left-1 downto 0) & hactive_s;
end if;
end process;
BTW 'h_active_s' is a signal declared in the containing entity, and is
definitely not optimised out.
However, when building the project for Xilix under ISE 9.2.03i, I get the
following warnings during synthesis:
WARNING:Xst:653 - Signal <hactive_v_r<3>> is used but never assigned. Tied
to value 0.
WARNING:Xst:1780 - Signal <hactive_v_r<2:0>> is never used or assigned.
As a result, the code doesn't work - the results suggest that this shift
register has indeed been removed from the design.
As I said, this module is used - exactly as-is, in its entirety, in
several Altera modules.
Any idea what my problem is???
Regards,
--
Mark McDougall, Engineer
Virtual Logic Pty Ltd, <http://www.vl.com.au>
21-25 King St, Rockdale, 2216
Ph: +612-9599-3255 Fax: +612-9599-3266