[casper] Operands to the || and operators must be convertible to logical scalar values

2015-03-09 Thread Charles Copley
Hi all,

I have a strange error that arises after a small change to a design:

I have used the sync pulse to reset a counter, that in turn (together with
a comparator coupled to a register) produces a higher frequency pulse for
use in snap blocks i.e. to write the snap block data more frequently than
simply using the sync pulse for synchronizing the data to the FFT windows.

As soon as I do this I get the error in the subject line:
Operands to the || and  operators must be convertible to logical scalar
values

This does not happen if I use the sync pulse directly, without the counter.

All the data types are identical after a port update.

Does anyone have this problem with the 2014 July Casper toolflow?

Thanks in advance...


Charles Copley

Cell: +27 (0) 84 430 1160
 ---


Re: [casper] Operands to the || and operators must be convertible to logical scalar values

2015-03-09 Thread John Ford
Hi.

Maybe a boolean check box needs checked somewhere in your new logic?

John

 Hi all,

 I have a strange error that arises after a small change to a design:

 I have used the sync pulse to reset a counter, that in turn (together with
 a comparator coupled to a register) produces a higher frequency pulse for
 use in snap blocks i.e. to write the snap block data more frequently than
 simply using the sync pulse for synchronizing the data to the FFT windows.

 As soon as I do this I get the error in the subject line:
 Operands to the || and  operators must be convertible to logical scalar
 values

 This does not happen if I use the sync pulse directly, without the
 counter.

 All the data types are identical after a port update.

 Does anyone have this problem with the 2014 July Casper toolflow?

 Thanks in advance...


 Charles Copley

 Cell: +27 (0) 84 430 1160
  ---






Re: [casper] Roach2 QDR

2015-03-09 Thread Jack Hickish
Hi Matt,

The qdr_cal routine calibrates the relationship of clock and data signals
in the link between the FPGA and QDR signals. Basically it writes test
patterns and reads them back looking for glitches. It then changes the
delay of IODELAY blocks so that data read from the QDR is captured reliably.
If this calibration script runs successfully, I'm surprised you still see
glitches with 32 bits of data swapped between read and write (both from
PPC). This would (surely?) count as a glitch and cause the calibration
routine to fail(?). Do you only see strange behaviour when you read from
the FPGA fabric, or do straight write/reads from the CPU also misbehave? Is
the behaviour the same on every read / write (i.e., not intermittent)?

My experience with the QDR is that at high clock speeds (not sure how high,
but I see this at 312 MHz) the read latency of the QDR interface isn't 10
clock cycles as it should be even with the minimum IODELAY configuration,
and there are no reliable qdr_cal solutions. I solved this problem for my
design by removing half a clock cycle latency from the interface, at which
point the QDR would calibrate ok. What speed are you running your design
at? To me, misordered 32-bit chunks of data sounds indicative of a latency
problem in the qdr_cal solution, since the interface is 32 bit DDR, so half
a clock cycle mangles 32-bit chunks of data.

Good luck!

Jack



On Fri, 6 Mar 2015 at 23:54 Matt Strader mstra...@physics.ucsb.edu wrote:

 Hi all,

 I'm trying to use QDR on Roach2.  I have a test design where I write to
 QDR either in firmware or with katcp, then read it out in the firmware and
 check the results with snapshot blocks.  It mostly works, but with some
 interesting quirks.

 I know that katcp can only write 64 bits of the 72 bit QDR word, so I
 changed the bitbasher blocks in qdr_mask.m to move the inaccessible bits
 out of the way to the most significant bits.  Now everything seems to work
 well, except that in some builds (seems to depend on clock rate?), the
 first 32 bits (of the 64 bits I'm writing in a cycle) get swapped with the
 last 32 bits sometime between writing the word and reading it back.  And
 there is a sometimes a difference in whether I am writing in firmware or by
 katcp to whether this swap happens.

 Also, when I write with katcp starting at address zero, I find that when
 reading out, the write started at what seems to be address 1.  Is the
 latency of QDR set to 10 cycles?

 I can live with all this, as long as it is repeatable for a given design,
 but I thought I'd ask if anyone knows what is causing these quirks.

 Also, I understand that we should run a software calibration for qdr,
 which seems to be qdr_cal() in qdr.py in the ska-sa:casperfpga repo.  So, I
 run this first, which seems to work for my latest compiles, but I haven't
 noticed a difference in the results.  What exactly does this calibration
 do?

 Thanks,
 Matt Strader
 UC Santa Barbara



Re: [casper] Operands to the || and operators must be convertible to logical scalar values

2015-03-09 Thread David MacMahon
Hi, Charles,

Is it when you click OK on a block's mask dialog or when you run update 
diagram or ???

Maybe you can find additional details in the model_sysgen.log or 
model_sysgen_warning.log or model_sysgen_error.log files?  It would 
really help to know which block or file is causing this error.

Thanks,
Dave


On Mar 9, 2015, at 6:24 AM, Charles Copley wrote:

 Hi all,
 
 I have a strange error that arises after a small change to a design:
 
 I have used the sync pulse to reset a counter, that in turn (together with a 
 comparator coupled to a register) produces a higher frequency pulse for use 
 in snap blocks i.e. to write the snap block data more frequently than simply 
 using the sync pulse for synchronizing the data to the FFT windows.  
 
 As soon as I do this I get the error in the subject line:
 Operands to the || and  operators must be convertible to logical scalar 
 values
 
 This does not happen if I use the sync pulse directly, without the counter.
 
 All the data types are identical after a port update.
 
 Does anyone have this problem with the 2014 July Casper toolflow?
 
 Thanks in advance...
 
 
 Charles Copley
 
 Cell: +27 (0) 84 430 1160
  ---