Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-12-03 Thread William Mallard
Andrew Martens wrote:
 Sorry, did not realise you were in the middle of something.

No worries.  This is dragging on longer than expected (what, with
Matlab segfaulting every minute or so).  It looks like i won't be
pushing any changes before tomorrow evening.

Everything is integrated back into the fft library.  Now i need to
make some new unit tests with coverage for these new features.

I've also fixed the superficial wiring bug, and somehow my version
of the library is slightly smaller than the original(!).

 I didn't manually break the links, just changed a parameter to make
 it redraw and saved the result as the default. It does result in a
 non-default block being the default but this is the case in other 
 areas too,

Ah, ok.

 hard to make every block use the default.

I'm only now able to fully appreciate this after adding new parameters
to every fft block and then reintegrating them into each other.  Ugh.

 I will figure out how to revert my last commit, more adventures with
 git :)

Godspeed. ;)

Billy


 William Mallard wrote:
 Andrew Martens wrote:
 William Mallard wrote:
 Those wires are broken because the fft_direct block is configured
 for 2 inputs, but the default fft_wideband_real block needs it to
 have 4. But if you were to change the fft_direct block to default
 to 4 inputs, then the default fft block would be broken by
 default.

 Fixing this would require increasing the default sizes of the fft
 and fft_direct blocks.  I didn't do this because i figured the
 sizes were chosen for a reason.  I'd guess the fft and
 fft_wideband_real blocks are set to the smallest sizes allowed by
 our streaming architecture.

 This should be fixed as of commit 1596f5f. Somehow the fft_direct
 block got the wrong size when used in the default fft_wideband_real.

 I did try to make the default sizes the smallest possible to reduce
 the size of the libraries and amount of redrawing needed.

 I agree that we should try to keep the library as small as possible.
 
 In your most recent commit (1596f5), you manually broke the links on all
 fft_wideband_real sub-blocks.

 While this approach does fix the broken wires, it also means that each
 sub-block is now stored as a copy of a library block (instead of as a
 link to a library block).  This takes up much more space than the
 approach i suggested above.

 To quantify that, here's the size (in bytes) of casper_library_ffts.mdl:

  778050 : commit d38fb1c (my last commit)
 1232140 : commit d38fb1c + my suggested fix
 2389360 : commit 1596f5f (your last commit)

 How would you feel about rolling back your last kat commit?

 I'm 80% done with another major optimization that required modifying
 every single block in the fft library, and i was planning to push it
 today or tomorrow.  I could follow that up with a fix for the broken
 wires that minimizes library size.

 I have been compiling a design with Billy's FFT changes for a while
 now and so far things seem quite solid.

 Glad to hear it!  Thanks for pulling my changes to the kat repo.

 Billy



Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-12-02 Thread William Mallard
On 12/01/2010 05:37 PM, Mark Wagner wrote:
 I pulled again, and unset the global variables mentioned here:
 http://63.241.181.135/support/answers/33845.htm
 Which seemed to make that error go away.

Either one of those steps should have fixed your bug.

For future reference, here's a less sketchy version of that link:
http://www.xilinx.com/support/answers/33845.htm

 Although, i've been having other issues with the newest commits.
 Namely, the pfb_wideband_real won't redraw properly.  I think this
 is due to it still having the old adder_tree.

I haven't touched the PFB library or the adder_tree block, so this has
nothing to do with my string of recent commits.  If i had made changes
to these, i would have written about it in my commit messages.  So you
might want to start a new thread about pfb issues.

 Also, the fft_wideband_real in a fresh clone of the library has
 broken wires.

Yeah, i noticed these broken wires before i began optimizing the fft,
so that also has nothing to do with my recent commits.

Those wires are broken because the fft_direct block is configured for
2 inputs, but the default fft_wideband_real block needs it to have 4.
But if you were to change the fft_direct block to default to 4 inputs,
then the default fft block would be broken by default.

Fixing this would require increasing the default sizes of the fft and
fft_direct blocks.  I didn't do this because i figured the sizes were
chosen for a reason.  I'd guess the fft and fft_wideband_real blocks
are set to the smallest sizes allowed by our streaming architecture.

 This seems it can be fixed by redrawing,

Exactly.  If you change any parameter(s), the block redraws correctly.
So this isn't really an issue.

 but i've also been getting errors about not finding the twiddle
 block even though it's there,

This sounds like a problem that people often have with Matlab loading
libraries.  Can you give a list of steps to replicate this behavior?

 but this may be because names of blocks were changed and the path is
 too long, but i'm still in the process of debugging that.

The only block names that changed got shorter.  AddSub[12] became cadd,
and AddSub[34] became csub.  So i doubt that this is your problem.

Billy

 On Mon, Nov 29, 2010 at 11:03 PM, William Mallard w...@llard.net
 wrote:
 
 I haven't had any trouble compiling with the latest fft optimizations,
 but i think i know what your problem is.  I just pushed something that
 should fix it.  Can you pull from bwrc and try compiling again?
 
 On 11/29/2010 09:11 PM, Mark Wagner wrote:
 Hi Billy,

 I tried to compile a design with your modified fft_wideband_real and
 received the following error during system generation (see below).
 Have you been able to get a design to compile?  Do you recognize the
 problem?

 Thanks,
 Mark

 HDL simulation model compilation failed.
 WARNING:Simulator:1010 - One or more environment variables have been
 detected which affect the operation of the C compiler. These are
 typically not set in standard installations and are not tested by
 Xilinx, however they may be appropriate for your system, so the flow
 will attempt to continue. If errors occur, try running fuse with the
 -mt off -v 1 switches to see more information from the C compiler.
 The following environment variables have been detected:
 Error occurred during Simulation Initialization.
 Reported by:
 'gbtspec_mode01/fft_wideband_real/fft_biplex_real_4x0/biplex_core/
 fft_stage_1/butterfly_direct/cadd/DSP48E'

 On Tue, Nov 23, 2010 at 7:49 PM, William Mallard w...@llard.net
 wrote:
 When dsp48_adders is enabled, butterfly_direct now uses caddsub
 blocks for complex addition, halving the number of dsp48s used.

 To implement this, the block's init script needed to be almost
 completely rewritten to redraw the block. It also necessitated
 the string of recent changes to all fft-related masks, as well
 as the creation of the parameterized caddsub_dsp48e block.

 All existing fft unit tests pass.

 Billy



Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-12-02 Thread Andrew Martens
Hi all

Yeah, i noticed these broken wires before i began optimizing the fft,
 so that also has nothing to do with my recent commits.

 Those wires are broken because the fft_direct block is configured for
 2 inputs, but the default fft_wideband_real block needs it to have 4.
 But if you were to change the fft_direct block to default to 4 inputs,
 then the default fft block would be broken by default.

 Fixing this would require increasing the default sizes of the fft and
 fft_direct blocks.  I didn't do this because i figured the sizes were
 chosen for a reason.  I'd guess the fft and fft_wideband_real blocks
 are set to the smallest sizes allowed by our streaming architecture.


This should be fixed as of commit 1596f5f. Somehow the fft_direct block
got the wrong size when used in the default fft_wideband_real.

I did try to make the default sizes the smallest possible to reduce the
size of the libraries and amount of redrawing needed. I have seen a
scheme that Dave M (I think..?) uses where the default block is empty
so redrawing is forced for anything useful. This minimises the library
size and makes upgrades/changes simple as only the init script needs
changing i.e no redrawing or replacing blocks in the libraries. Another
thing on the list of TODOs... :)

I have been compiling a design with Billy's FFT changes for a while now and
so
far things seem quite solid. The device is not very full so I am not sure
about how the extra constraint affects timing in full designs, will try that

next with the pocketcorrelator which is quite full.

Regards
Andrew


Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-12-01 Thread Andrew Martens
Hi Mark


 Although, i've been having other issues with the newest commits.  Namely,
 the pfb_wideband_real won't redraw properly.  I think this is due to it
 still having the old adder_tree.


The fix I made a while back to allow the use of DSP48s for the adders in the
adder_tree meant that it is not backwards compatible. This means that you
need to drag a new pfb_wideband_real into your design. The scripts try to
reuse the existing blocks, just changing parameters, and this breaks as the
old block does not have the same parameters.

Regards
Andrew


Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-12-01 Thread Mark Wagner
Hi Andrew,

Thanks for the reply.  I think this is a problem with our repo, not kat's.
 I had dragged a new pfb_wideband_real from the bwrc repository.  I then
changed the number of inputs and it didn't draw.  I think this is because
when we update the adder_tree block with new parameters, the new version
wasn't added to the PFB, so when the PFB mask script tried to run the new
adder_tree mask script on the old adder_tree in the PFB, it broke.

Mark


On Wed, Dec 1, 2010 at 9:35 PM, Andrew Martens martens.and...@gmail.comwrote:

 Hi Mark


 Although, i've been having other issues with the newest commits.  Namely,
 the pfb_wideband_real won't redraw properly.  I think this is due to it
 still having the old adder_tree.


 The fix I made a while back to allow the use of DSP48s for the adders in
 the adder_tree meant that it is not backwards compatible. This means that
 you need to drag a new pfb_wideband_real into your design. The scripts try
 to reuse the existing blocks, just changing parameters, and this breaks as
 the old block does not have the same parameters.

 Regards
 Andrew





Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-12-01 Thread Andrew Martens
Just a quick update

pfb_fir will give problems as neither the script nor library block has been
 updated.

 Actually, pfb_fir is fine. The new parameters are not used in the scripts
so it just uses
the defaults and last_tap pulls in the correct adder_tree without needing to
change
parameter values. I need to make the choices visible to users and need to
make other
changes but it will work as is for the moment.

Regards
Andrew


Re: casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-11-29 Thread William Mallard
I haven't had any trouble compiling with the latest fft optimizations,
but i think i know what your problem is.  I just pushed something that
should fix it.  Can you pull from bwrc and try compiling again?

On 11/29/2010 09:11 PM, Mark Wagner wrote:
 Hi Billy,
 
 I tried to compile a design with your modified fft_wideband_real and
 received the following error during system generation (see below).  Have
 you been able to get a design to compile?  Do you recognize the problem?
 
 Thanks,
 Mark
 
 HDL simulation model compilation failed.
 WARNING:Simulator:1010 - One or more environment variables have been
 detected which affect the operation of the C compiler. These are
 typically not set in standard installations and are not tested by
 Xilinx, however they may be appropriate for your system, so the flow
 will attempt to continue. If errors occur, try running fuse with the
 -mt off -v 1 switches to see more information from the C compiler.
 The following environment variables have been detected:
 Error occurred during Simulation Initialization.
 Reported by:
 'gbtspec_mode01/fft_wideband_real/fft_biplex_real_4x0/biplex_core/fft_stage_1/butterfly_direct/cadd/DSP48E'
 
 
 On Tue, Nov 23, 2010 at 7:49 PM, William Mallard w...@llard.net
 wrote:
 When dsp48_adders is enabled, butterfly_direct now uses caddsub
 blocks for complex addition, halving the number of dsp48s used.
 
 To implement this, the block's init script needed to be almost
 completely rewritten to redraw the block. It also necessitated
 the string of recent changes to all fft-related masks, as well
 as the creation of the parameterized caddsub_dsp48e block.
 
 All existing fft unit tests pass.
 
 Billy



casper-scm Commit 13b5978: rewrote butterfly_direct_init

2010-11-23 Thread William Mallard
When dsp48_adders is enabled, butterfly_direct now uses caddsub
blocks for complex addition, halving the number of dsp48s used.

To implement this, the block's init script needed to be almost
completely rewritten to redraw the block. It also necessitated
the string of recent changes to all fft-related masks, as well
as the creation of the parameterized caddsub_dsp48e block.

All existing fft unit tests pass.

Billy