Re: [casper] casper Digest, Vol 95, Issue 3: FFT problems

2015-11-15 Thread Andrew Martens
Hi Michael

Sorry for the very late response.

The problem was narrowed down to  a multiplexer in the
butterfly_direct/twiddle/coeff_gen/cosin/add_convert1 block when it is used
in the fft_direct block for a small FFT. Twiddle factors in this case are a
fraction of a cycle of a complex exponential with the factors appearing in
order (i.e not bit reversed). You can generate this case by dropping a
butterfly_direct block into an empty design and choosing the following
parameters (Size of FFT: 5, Coefficients: [0:3], Coefficient Step Period:
1, others default)

If you look at the logic generating the lookup address of these twiddle
factors eg in butterfly_direct/twiddle/coeff_gen/cosin/add_convert1 you
will see that Mux chooses whether to take the address generated as is
(new_add), or the address subtracted from a constant (AddSub). The sel
input of Mux is controlled by the bit identifying whether the address is in
an odd or even quarter of the address space.

AddSub5 calculates which quadrant of the address space the address will be
in and the general case is that the address will step through all
quadrants. In the fft_direct case, only a fraction of the address space is
traversed so that this is a constant (notice pad and direction_offset are
constants).

In this case we would expect the Xilinx compiler to notice that the output
of AddSub5 will be constant and to optimise Mux away and just choose the
appropriate input based on the constant quadrant index. We found that the
Mux would be optimised away, but that the wrong output would be chosen! The
complex component of our twiddle factor would thus have the wrong phase.

We found that unchecking 'BRAM sharing in coeff storage' in the
Implementation tab of the fft_direct block prevented this as the address
generation logic would be different. We also found that this bug did not
occur when compiling for ROACH/Virtex 5 (only ROACH2/Virtex 6).

I am not sure if you are seeing this bug though. You have a very large FFT
such that the fft_direct blocks should generate their twiddle coefficients
using the feedback_osc block (controlled using the 'Generate coefficients
using multipliers where useful'  option in the Implementation tab. This
generates the twiddle coefficients by starting with a complex vector and
rotating it a fixed phase to generate the new complex vector.

It is worth noting that this bug was very sensitive. Adding logic to try to
debug things, or cutting and pasting logic into an empty design to isolate
the logic from the rest of the system sometimes caused the error not to
occur. We tried compiling with RHEL5 as it seemed similar to Dan's FFT bug
when using non-approved operating systems but this did not help.

We hope that these types of bugs do not occur in the new Vivado compiler
suite that seems to be producing good results and which Xilinx seems to be
giving its full support.

Regards
Andrew



On Wed, Nov 11, 2015 at 5:47 PM, Michael D'Cruze <
michael.dcr...@postgrad.manchester.ac.uk> wrote:

> Hi Andrew, Jonathon,
>
> Andrew: I was wondering if you'd kept a record of which precise counter
> (when implemented in behavioural HDL) caused FFT output to be incorrect? I
> would like to take a look and see if this is also my problem.
> I also wondered if you knew which ISE versions you had tried...
>
> Do I understand correctly that the problems seem to lie in Xilinx's
> compilation tools?
>
> Thanks
> Michael
>
> -Original Message-
> From: casper-boun...@lists.berkeley.edu [mailto:
> casper-boun...@lists.berkeley.edu] On Behalf Of
> casper-requ...@lists.berkeley.edu
> Sent: 07 October 2015 20:11
> To: casper@lists.berkeley.edu
> Subject: casper Digest, Vol 95, Issue 3
>
> Send casper mailing list submissions to
> casper@lists.berkeley.edu
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://calmail.berkeley.edu/manage/list/listinfo/casper@lists.berkeley.edu
>
> or, via email, send a message with subject or body 'help' to
> casper-requ...@lists.berkeley.edu
>
> You can reach the person managing the list at
> casper-ow...@lists.berkeley.edu
>
> When replying, please edit your Subject line so it is more specific than
> "Re: Contents of casper digest..."
>
>
> Today's Topics:
>
>1. Re: FFT problems (Andrew Martens)
>
>
> --
>
> Message: 1
> Date: Wed, 7 Oct 2015 10:17:59 +0200
> From: Andrew Martens 
> Subject: Re: [casper] FFT problems
> To: Jonathon Kocz 
> Cc: "casper@lists.berkeley.edu" 
> Message-ID:
>  sy-v3kn2gkj3sqtzeb1cn4qei3tb...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hey Jonathon
>
> We discovered an interesting issue a while back that sounds similar.
> Symptom was design with FFT in it simulates fine but produces weird output
> in hardware.
>
> Isolated FFT as the problem and search for weirdness using impulse as
> input.
> Narrowed the problem down to logic producing twiddle coeffici

Re: [casper] startsg issue (Xilinx?)

2015-11-15 Thread Jack Hickish
Seconded -- http://www.xilinx.com/support/answers/17966.html suggests
MATLAB 2013a and anything before ISE 14.7 (although 14.6 works on windows
-- yay!) isn't a supported combination.

On Sun, 15 Nov 2015 at 19:22 John Ford  wrote:

> > Hi all,
> >
> > As part of my attempts to narrow down the cause of the FFT problems I'm
> > having (well-documented), I'm trying different versions of ISE. I want to
> > try most of the 14.x versions plus some rather older versions.
> >
> > I've installed the versions I want to try but when I change the
> > startsg.local file for any version other than 14.7 I get the error
> > displayed at the bottom of this email. A similar issue appears on the
> mail
> > archive but this was apparently solved by reinstalling Xilinx ISE. This
> > hasn't worked for me. I have also tried deleting the entire /opt/Xilinx
> > folder and reinstalling *only* the older version. This also did not work.
> > MATLAB still successfully starts when startsg.local is looking for ISE
> > 14.7.
> >
> > This seems a rather silly error and would seem to be something to do with
> > the startup scripts, though I can't immediately see any problems. I'd be
> > grateful for any suggestions...
>
> The system is sensitive to matlab-xilinx version matching.  Some play
> nicely together, and some don't.
>
> I'd try using an earlier version of matlab.  See the casper web page for
> suggested combinations.
>
> John
> >
> > Cheers
> > Michael
> >
> > Error:
> >
> >
> >
> > 
> >
> >Segmentation violation detected at Sun Nov 15 18:51:19 2015
> >
> > 
> >
> >
> >
> > Configuration:
> >
> >   Crash Decoding : Disabled
> >
> >   Current Visual : 0x21 (class 4, depth 24)
> >
> >   Default Encoding   : UTF-8
> >
> >   GNU C Library  : 2.12 stable
> >
> >   MATLAB Architecture: glnxa64
> >
> >   MATLAB Root: /opt/MATLAB/2013a
> >
> >   MATLAB Version : 8.1.0.604 (R2013a)
> >
> >   Operating System   : Linux 2.6.32-573.8.1.el6.x86_64 #1 SMP Fri Sep 25
> > 19:24:22 EDT 2015 x86_64
> >
> >   Processor ID   : x86 Family 6 Model 45 Stepping 7, GenuineIntel
> >
> >   Virtual Machine: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java
> > HotSpot(TM) 64-Bit Server VM mixed mode
> >
> >   Window System  : The X.Org Foundation (1150), display :1.0
> >
> >
> >
> > Fault Count: 1
> >
> >
> >
> >
> >
> > Abnormal termination:
> >
> > Segmentation violation
> >
> >
> >
> > Register State (from fault):
> >
> >   RAX = 7f404af6a8f0  RBX = 0020
> >
> >   RCX = 7f3bbc744618  RDX = 7f404af6a8e0
> >
> >   RSP = 7f4036736430  RBP = 7f3bbc8c5408
> >
> >   RSI = 7f3bbc744642  RDI = 0020
> >
> >
> >
> >R8 =    R9 = d501
> >
> >   R10 = 0045  R11 = 
> >
> >   R12 = 7f4036736ec0  R13 = 
> >
> >   R14 =   R15 = 7f3bbc744642
> >
> >
> >
> >   RIP = 7f404bd6f904  EFL = 00010206
> >
> >
> >
> >CS = 0033   FS =    GS = 
> >
> >
> >
> > Stack Trace (from fault):
> >
> > [  0] 0x7f404bd6f904
> >
> /opt/MATLAB/2013a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6+00669956
> > _ZNSsD1Ev+0004
> >
> > [  1] 0x7f404acecc68
> > /opt/MATLAB/2013a/bin/glnxa64/libboost_log_setup.so.1.49.0+01846376
> >
> _ZN5boost9xpressive13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcSsEEED1Ev+0040
> >
> > [  2] 0x7f3bb4e992a2
> >
> /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/../../lib/lin64/libsysgen.so+05595810
> > _ZN6Sysgen7Utility25getToolVersionFromFilesetERKSs+1698
> >
> > [  3] 0x7f3bb4e99d92
> >
> /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/../../lib/lin64/libsysgen.so+05598610
> > _ZN6Sysgen7Utility22getVivadoHLSInstallDirEv+0226
> >
> > [  4] 0x7f3bb58b5957
> > /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/xlmeta.mexa64+00022871
> >
> > [  5] 0x7f3bb58b7248
> > /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/xlmeta.mexa64+00029256
> > mexFunction+0248
> >
> > [  6] 0x7f4044a58f8a
> > /opt/MATLAB/2013a/bin/glnxa64/libmex.so+00110474 mexRunMexFile+0090
> >
> > [  7] 0x7f4044a550f9
> > /opt/MATLAB/2013a/bin/glnxa64/libmex.so+00094457
> >
> > [  8] 0x7f4044a55f1c
> > /opt/MATLAB/2013a/bin/glnxa64/libmex.so+00098076
> >
> > [  9] 0x7f404d1a06b2
> > /opt/MATLAB/2013a/bin/glnxa64/libmwm_dispatcher.so+00562866
> > _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+0594
> >
> > [ 10] 0x7f404cc2abf6
> > /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04262902
> >
> > [ 11] 0x7f404cc2b37a
> > /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04264826
> >
> > [ 12] 0x7f404cc2beea
> > /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04267754
> >
> > [ 13] 0x7f404ca8ebbd
> > /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02575293
> >
> > 

Re: [casper] startsg issue (Xilinx?)

2015-11-15 Thread John Ford
> Hi all,
>
> As part of my attempts to narrow down the cause of the FFT problems I'm
> having (well-documented), I'm trying different versions of ISE. I want to
> try most of the 14.x versions plus some rather older versions.
>
> I've installed the versions I want to try but when I change the
> startsg.local file for any version other than 14.7 I get the error
> displayed at the bottom of this email. A similar issue appears on the mail
> archive but this was apparently solved by reinstalling Xilinx ISE. This
> hasn't worked for me. I have also tried deleting the entire /opt/Xilinx
> folder and reinstalling *only* the older version. This also did not work.
> MATLAB still successfully starts when startsg.local is looking for ISE
> 14.7.
>
> This seems a rather silly error and would seem to be something to do with
> the startup scripts, though I can't immediately see any problems. I'd be
> grateful for any suggestions...

The system is sensitive to matlab-xilinx version matching.  Some play
nicely together, and some don't.

I'd try using an earlier version of matlab.  See the casper web page for
suggested combinations.

John
>
> Cheers
> Michael
>
> Error:
>
>
>
> 
>
>Segmentation violation detected at Sun Nov 15 18:51:19 2015
>
> 
>
>
>
> Configuration:
>
>   Crash Decoding : Disabled
>
>   Current Visual : 0x21 (class 4, depth 24)
>
>   Default Encoding   : UTF-8
>
>   GNU C Library  : 2.12 stable
>
>   MATLAB Architecture: glnxa64
>
>   MATLAB Root: /opt/MATLAB/2013a
>
>   MATLAB Version : 8.1.0.604 (R2013a)
>
>   Operating System   : Linux 2.6.32-573.8.1.el6.x86_64 #1 SMP Fri Sep 25
> 19:24:22 EDT 2015 x86_64
>
>   Processor ID   : x86 Family 6 Model 45 Stepping 7, GenuineIntel
>
>   Virtual Machine: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java
> HotSpot(TM) 64-Bit Server VM mixed mode
>
>   Window System  : The X.Org Foundation (1150), display :1.0
>
>
>
> Fault Count: 1
>
>
>
>
>
> Abnormal termination:
>
> Segmentation violation
>
>
>
> Register State (from fault):
>
>   RAX = 7f404af6a8f0  RBX = 0020
>
>   RCX = 7f3bbc744618  RDX = 7f404af6a8e0
>
>   RSP = 7f4036736430  RBP = 7f3bbc8c5408
>
>   RSI = 7f3bbc744642  RDI = 0020
>
>
>
>R8 =    R9 = d501
>
>   R10 = 0045  R11 = 
>
>   R12 = 7f4036736ec0  R13 = 
>
>   R14 =   R15 = 7f3bbc744642
>
>
>
>   RIP = 7f404bd6f904  EFL = 00010206
>
>
>
>CS = 0033   FS =    GS = 
>
>
>
> Stack Trace (from fault):
>
> [  0] 0x7f404bd6f904
> /opt/MATLAB/2013a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6+00669956
> _ZNSsD1Ev+0004
>
> [  1] 0x7f404acecc68
> /opt/MATLAB/2013a/bin/glnxa64/libboost_log_setup.so.1.49.0+01846376
> _ZN5boost9xpressive13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcSsEEED1Ev+0040
>
> [  2] 0x7f3bb4e992a2
> /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/../../lib/lin64/libsysgen.so+05595810
> _ZN6Sysgen7Utility25getToolVersionFromFilesetERKSs+1698
>
> [  3] 0x7f3bb4e99d92
> /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/../../lib/lin64/libsysgen.so+05598610
> _ZN6Sysgen7Utility22getVivadoHLSInstallDirEv+0226
>
> [  4] 0x7f3bb58b5957
> /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/xlmeta.mexa64+00022871
>
> [  5] 0x7f3bb58b7248
> /opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/xlmeta.mexa64+00029256
> mexFunction+0248
>
> [  6] 0x7f4044a58f8a
> /opt/MATLAB/2013a/bin/glnxa64/libmex.so+00110474 mexRunMexFile+0090
>
> [  7] 0x7f4044a550f9
> /opt/MATLAB/2013a/bin/glnxa64/libmex.so+00094457
>
> [  8] 0x7f4044a55f1c
> /opt/MATLAB/2013a/bin/glnxa64/libmex.so+00098076
>
> [  9] 0x7f404d1a06b2
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_dispatcher.so+00562866
> _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+0594
>
> [ 10] 0x7f404cc2abf6
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04262902
>
> [ 11] 0x7f404cc2b37a
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04264826
>
> [ 12] 0x7f404cc2beea
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04267754
>
> [ 13] 0x7f404ca8ebbd
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02575293
>
> [ 14] 0x7f404caba412
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02753554
>
> [ 15] 0x7f404caba53f
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02753855
>
> [ 16] 0x7f404cbd7500
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+03921152
>
> [ 17] 0x7f404c9f38ac
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01939628
>
> [ 18] 0x7f404c9ef993
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01923475
>
> [ 19] 0x7f404c9f0797
> /opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01927063
>
> [ 20] 0x7f

[casper] startsg issue (Xilinx?)

2015-11-15 Thread Michael D'Cruze
Hi all,

As part of my attempts to narrow down the cause of the FFT problems I'm having 
(well-documented), I'm trying different versions of ISE. I want to try most of 
the 14.x versions plus some rather older versions.

I've installed the versions I want to try but when I change the startsg.local 
file for any version other than 14.7 I get the error displayed at the bottom of 
this email. A similar issue appears on the mail archive but this was apparently 
solved by reinstalling Xilinx ISE. This hasn't worked for me. I have also tried 
deleting the entire /opt/Xilinx folder and reinstalling *only* the older 
version. This also did not work. MATLAB still successfully starts when 
startsg.local is looking for ISE 14.7.

This seems a rather silly error and would seem to be something to do with the 
startup scripts, though I can't immediately see any problems. I'd be grateful 
for any suggestions...

Cheers
Michael

Error:





   Segmentation violation detected at Sun Nov 15 18:51:19 2015





Configuration:

  Crash Decoding : Disabled

  Current Visual : 0x21 (class 4, depth 24)

  Default Encoding   : UTF-8

  GNU C Library  : 2.12 stable

  MATLAB Architecture: glnxa64

  MATLAB Root: /opt/MATLAB/2013a

  MATLAB Version : 8.1.0.604 (R2013a)

  Operating System   : Linux 2.6.32-573.8.1.el6.x86_64 #1 SMP Fri Sep 25 
19:24:22 EDT 2015 x86_64

  Processor ID   : x86 Family 6 Model 45 Stepping 7, GenuineIntel

  Virtual Machine: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java 
HotSpot(TM) 64-Bit Server VM mixed mode

  Window System  : The X.Org Foundation (1150), display :1.0



Fault Count: 1





Abnormal termination:

Segmentation violation



Register State (from fault):

  RAX = 7f404af6a8f0  RBX = 0020

  RCX = 7f3bbc744618  RDX = 7f404af6a8e0

  RSP = 7f4036736430  RBP = 7f3bbc8c5408

  RSI = 7f3bbc744642  RDI = 0020



   R8 =    R9 = d501

  R10 = 0045  R11 = 

  R12 = 7f4036736ec0  R13 = 

  R14 =   R15 = 7f3bbc744642



  RIP = 7f404bd6f904  EFL = 00010206



   CS = 0033   FS =    GS = 



Stack Trace (from fault):

[  0] 0x7f404bd6f904 
/opt/MATLAB/2013a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6+00669956 
_ZNSsD1Ev+0004

[  1] 0x7f404acecc68 
/opt/MATLAB/2013a/bin/glnxa64/libboost_log_setup.so.1.49.0+01846376 
_ZN5boost9xpressive13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcSsEEED1Ev+0040

[  2] 0x7f3bb4e992a2 
/opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/../../lib/lin64/libsysgen.so+05595810
 _ZN6Sysgen7Utility25getToolVersionFromFilesetERKSs+1698

[  3] 0x7f3bb4e99d92 
/opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/../../lib/lin64/libsysgen.so+05598610
 _ZN6Sysgen7Utility22getVivadoHLSInstallDirEv+0226

[  4] 0x7f3bb58b5957 
/opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/xlmeta.mexa64+00022871

[  5] 0x7f3bb58b7248 
/opt/Xilinx/14.4/ISE_DS/ISE/sysgen/bin/lin64/xlmeta.mexa64+00029256 
mexFunction+0248

[  6] 0x7f4044a58f8a
/opt/MATLAB/2013a/bin/glnxa64/libmex.so+00110474 mexRunMexFile+0090

[  7] 0x7f4044a550f9
/opt/MATLAB/2013a/bin/glnxa64/libmex.so+00094457

[  8] 0x7f4044a55f1c
/opt/MATLAB/2013a/bin/glnxa64/libmex.so+00098076

[  9] 0x7f404d1a06b2 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_dispatcher.so+00562866 
_ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+0594

[ 10] 0x7f404cc2abf6 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04262902

[ 11] 0x7f404cc2b37a 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04264826

[ 12] 0x7f404cc2beea 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+04267754

[ 13] 0x7f404ca8ebbd 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02575293

[ 14] 0x7f404caba412 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02753554

[ 15] 0x7f404caba53f 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02753855

[ 16] 0x7f404cbd7500 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+03921152

[ 17] 0x7f404c9f38ac 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01939628

[ 18] 0x7f404c9ef993 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01923475

[ 19] 0x7f404c9f0797 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01927063

[ 20] 0x7f404ca5be50 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02367056

[ 21] 0x7f404d1a06b2 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_dispatcher.so+00562866 
_ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+0594

[ 22] 0x7f404ca3e256 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+02245206

[ 23] 0x7f404c9ca09d 
/opt/MATLAB/2013a/bin/glnxa64/libmwm_interpreter.so+01769629

[ 24] 0x7