On 29 Nov 2013, at 12:34 pm, Adrien Prost-Boucle 
<adrien.prost-bou...@laposte.net> wrote:

> First, for each oy you who tried to work on my vhd files, I'm ver sorry
> about the impossible line lengths!!! Indeed vhd files need to remain
> humanly readable and editable (I've myself read and manually corrected
> many of the huge vhd files I generate, with my favorite editor (geany)
> without any problem... but as I'm somewhat still the only developer (and
> user) of my tools I tended to forget basic formatting rules, sorry xD)
> 
> Tomorrow (France time) I'll edit my testbench generator and re-generate
> a human-readable and editable tb.vhd.
> 
> 
> On Thu, 2013-11-28 at 20:18 +0000, Brian Drummond wrote:
> 
>> Again another data point: Editing out both the aggregates and replacing
>> them with (others => (others => '0')), "tb" analyses, elaborates and
>> runs fine - in under a second for each phase.
>> 
>> So I see no evidence whatsoever for a problem with initialising these
>> large arrays with (others => (others => '0'));
>> and plenty that the ridiculous line lengths were causing problems; but
>> not necessarily for ghdl.
> 
> Actually, I meant _appending_ this "(others => (others => '0'))" at the
> end of the values already present, not replace the entire line. Like
> this:
> 
>  ... := (
>    X"00", X"01", ..., X"AB", (others => (others => '0'))
>  );

An others choice can always be included even if you have full coverage for  
positional associated choices in your aggregate being assigned to a composite 
type.  It's a VHDL feature likely intended for the the sort of use you want to 
put it, blindly giving an others choice regardless of the number of elements in 
the composite type.

Someone saw your need when defining VHDL.  I thought one of the cases I tried 
and showed in my first post showed this working for the 0 to 0 array.

> Originally, this was the easiest solution to make the array
> instantiation syntactically correct when there is only one cell. So this
> "(others => (others => '0'))" addition isn't meant to actually fill any
> cell with any '0'. It is meant to remain unused, and unuseful, except
> for making ghdl parse the vhdl code in the specific case where the array
> has only one cell.
> (yes this purpose doesn't deserve all the attention of ghdl-discuss...
> but the result (crash) does)
> 
> I'll send a patched human-formatted tb.vhd tomorrow (in ~20h because
> sending mails from my personal email address is refused by laboratory's
> network...)
> 
> Or this "others" thing could be appended to my currently huge line like
> this:
> 
>  ... := (
>    X"00", X"01", ... <400k other values>
>   , (others => (others => '0'))
>  );
> 
> Don't know if this comma at the beginning of the line is syntactically
> correct, it sure isn't pretty, but if it works for now...

I'd try go for it.

> David, I didn't send the rest of the application because it is another
> mountain of vhdl, and because my ghdl crash happens right at analysis
> the tb.vhd file, so the rest is not needed.

It's nice we could collectively narrow down the problem.  Not sure when we 
can deliver a solution.  Nick's fsm_test elaboration generated a 40 MB object 
file.  His tool may not be ready for real use yet.  

Could you use an mcode version of ghdl if some one made a Linux version?

> My tools are under heavy development so right now, without manual
> constraints, the generated circuits tend to be unrealistic, for the
> bigger apps I use as testbenches. Making all this realistic is one of my
> top goals, to get there I use big apps, consider how they are
> transformed by the tools, observe every bit of the generated vhdl,
> launch simulations / logic synthesis / place&route to test everything...
> work in progress.
> BTW, when manually applying transformation we can get very realistic
> circuits with my tools. It is the automatic mode that produces little
> insanities like fsm.vhd.

Found your paper 'A Fast and Stand-alone HLS Methodology for Hardware
Accelerator Generation Under Resource Constraints'
http://www-labsticc.univ-ubs.fr/~chavet/orga/HLS4HPC_2013/txt/APB_paper.pdf

http://tima.imag.fr/sls/research-projects/augh/

(I wondered what AUGH stood for - Autonomous and User Guided High-level 
Synthesis).


_______________________________________________
Ghdl-discuss mailing list
Ghdl-discuss@gna.org
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to