J
Jaime Andrés Aranguren Ca
Guest
Dear all,
In my current project I have an entity for which I which arhitecture
to use on a VHDL file where I instantiate the entity, like following
configuration code:
-- Embedded configuration
-- Select control architecture to use
for all : Ctrl2D use entity work.Ctrl2D(rtl_small);
Within the VHDL file where Ctrl2D is defined, I have different
configurations, namely rtl_tiny and rtl_small. Within each of those,
are processes which have variables whose length depend on some
constants (KA, KB), like:
process_out : process (in_a, in_b)
variable var : std_logic_vector (KA-KB-1 downto 0) := (others =>
'0');
begin
I should select which architecture to use in the configuration
(rtl_tiny or rtl_small) depending on a given a given set of values KA
and KB. For a set of values KA and KB that works fine with rtl_small
and having rtl_small selected in the configuration, XST, when parsing,
gives me warnign and error messages:
Entity <Ctrl2D> compiled.
WARNING:HDLParsers:3350 - "D:/Projects/Ctrl2D.vhd" Line 157. Null
range: -33 downto 0
ERROR:HDLParsers:804 - "D:/Projects/Ctrl2D.vhd" Line 214. Size of
concat operation is different than size of the target.
Entity <Ctrl2D> (Architecture <rtl_small>
compiled.
But those lines (157 and 214) are within the architecture rtl_tiny,
not rtl_small.
I was confident that by selecting the right architecture in the
configuration I was completely bypassing everything related to non-
desired architectures, but it seems like I was wrong.
How can I direct XST to ignore the code of the non-interesting
architectures, and parse and synthesize only the one that I selected
in the configuration?
Thanks a lot in advance,
JaaC
In my current project I have an entity for which I which arhitecture
to use on a VHDL file where I instantiate the entity, like following
configuration code:
-- Embedded configuration
-- Select control architecture to use
for all : Ctrl2D use entity work.Ctrl2D(rtl_small);
Within the VHDL file where Ctrl2D is defined, I have different
configurations, namely rtl_tiny and rtl_small. Within each of those,
are processes which have variables whose length depend on some
constants (KA, KB), like:
process_out : process (in_a, in_b)
variable var : std_logic_vector (KA-KB-1 downto 0) := (others =>
'0');
begin
I should select which architecture to use in the configuration
(rtl_tiny or rtl_small) depending on a given a given set of values KA
and KB. For a set of values KA and KB that works fine with rtl_small
and having rtl_small selected in the configuration, XST, when parsing,
gives me warnign and error messages:
Entity <Ctrl2D> compiled.
WARNING:HDLParsers:3350 - "D:/Projects/Ctrl2D.vhd" Line 157. Null
range: -33 downto 0
ERROR:HDLParsers:804 - "D:/Projects/Ctrl2D.vhd" Line 214. Size of
concat operation is different than size of the target.
Entity <Ctrl2D> (Architecture <rtl_small>
But those lines (157 and 214) are within the architecture rtl_tiny,
not rtl_small.
I was confident that by selecting the right architecture in the
configuration I was completely bypassing everything related to non-
desired architectures, but it seems like I was wrong.
How can I direct XST to ignore the code of the non-interesting
architectures, and parse and synthesize only the one that I selected
in the configuration?
Thanks a lot in advance,
JaaC