shaiko
Advanced Member level 5
- Joined
- Aug 20, 2011
- Messages
- 2,644
- Helped
- 303
- Reputation
- 608
- Reaction score
- 297
- Trophy points
- 1,363
- Activity points
- 18,302
this is what written in line 128 of the mentioned file:Error (10806): VHDL error at controller_write_fifo.vhd(128): range in generation scheme must be static
write_pointer_to_write_address : for index in OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ' range
generate
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_2 ( index ) <=
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ( index ) ( OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ( 0 ) ' high - 1 downto 0 ) ;
end generate write_pointer_to_write_address ;
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 : buffer type_array_unsigned ( 0 to POSITIVE_CONFIGURATION_2 - 1 ) ( positive ( log2 ( real ( POSITIVE_CONFIGURATION_2 ) ) ) downto 0 ) ;
POSITIVE_CONFIGURATION_2 : positive := 4;
write_pointer_to_write_address : for index in [COLOR="#FF0000"]OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ' range[/COLOR]
generate
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_2 ( index ) <=
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ( index ) ( OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ( 0 ) ' high - 1 downto 0 ) ;
end generate write_pointer_to_write_address ;
write_pointer_to_write_address : for index in [COLOR="#FF0000"]0 to POSITIVE_CONFIGURATION_2 - 1[/COLOR]
generate
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_2 ( index ) <=
OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ( index ) ( OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ( 0 ) ' high - 1 downto 0 ) ;
end generate write_pointer_to_write_address ;
Why are you using port type "buffer"?
I think you are OK until you try to connect a "buffer" port to an "out" port.Even though Quartus claims to support VHDL 2008 - it doesn't...So compilation fails when you read back an "out" port.
I used "buffer" as a quick fix to avoid rewriting my code with intermediate signals.
Even though Quartus claims to support VHDL 2008 - it doesn't...So compilation fails when you read back an "out" port.
Stupid question from a VHDL noob. What's the difference between a buffer and an out port in vhdl, and mostly what is the horrific contagion part of it?
In general, I stopped using buffers myself.
In this particular case, I used "out" at first...
Even though Quartus claims to support VHDL 2008 - it doesn't...So compilation fails when you read back an "out" port.
I used "buffer" as a quick fix to avoid rewriting my code with intermediate signals.
Since OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 is a two dimensional array, can you try OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ' range(1) in place of OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ' range?Why does Quartus consider the range of OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 to be non static?
I have got fragments of information about this, and I have puzzled together my interpretation, which can be wrong. It works for VHDL-93 and earlier:Stupid question from a VHDL noob. What's the difference between a buffer and an out port in vhdl, and mostly what is the horrific contagion part of it?
An 'out' cannot be 'read' which means that it cannot be used on the right hand side of an assignment or used in a comparison, etc. A buffer can be used in those situations.
...
The usual work around is to define an internal signal and use that everywhere and then have that internal signal then get assigned to the output.
Yes.did you change Quartus vhdl synthesis setting to VHDL-2008 ?
How will that help ?Since OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 is a two dimensional array, can you try OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ' range(1) in place of OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1 ' range?
Actually it won't help. I misread the definition. You don't have a 2d array, you have an array of an array.How will that help ?
I'm interested in the range of the depth - NOT the range of the width...
Actually it won't help. I misread the definition. You don't have a 2d array, you have an array of an array.
Why not?
"OUT_TYPE_ARRAY_UNSIGNED_ADDRESS_1" is an array of std logic vectors...
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?