Re: [casper] casper Digest, Vol 95, Issue 3: FFT problems
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?)
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?)
> 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?)
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