Re: [casper] PAR could not meet all timing constraints.

2010-12-16 Thread Daniel Esteban Herrera Pena

Hi David,

Thank you very much! I could synthesize running at 400MHz, I had to 
change DFS_FREQUENCY_MODE and DLL_FREQUENCY_MODE twice in the vhd file.


The problem now arises with my equipment, I realize that I have only 
120MHz function generator and the I need at least 128MHz (128MHZ/4 = 
32MHz minimun to DCM). Is there a way to use the internal clock in ROACH 
as the iADC external clock (clk_i)?


Regards,
Daniel.

On Mon, 13 Dec 2010 21:50:44 +0200, David George 
david.geo...@ska.ac.za wrote:

Hi Daniel

I tried to clock at 100MHz system clock and 400Mz for ADC, now I 
changed
to 200/800 respectively and it compiled! Why adc_clk_buf has issues 
with

lower frequency? Where I can find it in my design?


It looks like your timing error was inside the iADC yellow block,
which corresponds to a pcore in your EDK project. I suspect you have
run into a minimum timing constraint on a DCM which is configured for
high speed clocks. The minimum input clock frequency for DCMs on
Virtex-5 is 120 MHz. So this timing error isn't one that adding
latency can fix.

If you want to run at less than 120 MHz, you need change two
parameters (vhdl generics) in

xps_lib/XPS_ROACH_base/pcores/adc_interface_v1_01_a/hdl/vhdl/adc_interface.vhd.
Both DFS_FREQUENCY_MODE and DLL_FREQUENCY_MODE   should be equal to
LOW (as opposed to HIGH)

This represents a bug in the toolflow (or I suppose a missing 
feature)

as this could very comfortably be done automatically. I'll file a bug
report on this and it will probably be fixed soon.

Hopefully I'm correct in understanding the problem and have helped
ease your mind about it too.

Cheers,
David George





Re: [casper] PAR could not meet all timing constraints.

2010-12-16 Thread Matt Dexter

Hi,

I don't know the details of how to connect a
Roach internal FPGA clock to the iADC input clock but assuming
it can be done it may not be wise to do so.
The jitter on that clock may be unacceptable for your targe SNR;
it was pretty lousy clocks on older Xilinx FPGAs.

I'd carefuly check it out before proceeding down that path.  Maybe by
setting the Jitter Filter or Ref_jitter parameters or
cascading PLLS or something for the IOB too
an acceptable clock signal would be produced.

I would be curious to learn how it turns out if you should
give it a try.

Matt

On Thu, 16 Dec 2010, Daniel Esteban Herrera Pena wrote:


Hi David,

Thank you very much! I could synthesize running at 400MHz, I had to change 
DFS_FREQUENCY_MODE and DLL_FREQUENCY_MODE twice in the vhd file.


The problem now arises with my equipment, I realize that I have only 120MHz 
function generator and the I need at least 128MHz (128MHZ/4 = 32MHz minimun 
to DCM). Is there a way to use the internal clock in ROACH as the iADC 
external clock (clk_i)?


Regards,
Daniel.

On Mon, 13 Dec 2010 21:50:44 +0200, David George david.geo...@ska.ac.za 
wrote:

Hi Daniel


I tried to clock at 100MHz system clock and 400Mz for ADC, now I changed
to 200/800 respectively and it compiled! Why adc_clk_buf has issues with
lower frequency? Where I can find it in my design?


It looks like your timing error was inside the iADC yellow block,
which corresponds to a pcore in your EDK project. I suspect you have
run into a minimum timing constraint on a DCM which is configured for
high speed clocks. The minimum input clock frequency for DCMs on
Virtex-5 is 120 MHz. So this timing error isn't one that adding
latency can fix.

If you want to run at less than 120 MHz, you need change two
parameters (vhdl generics) in

xps_lib/XPS_ROACH_base/pcores/adc_interface_v1_01_a/hdl/vhdl/adc_interface.vhd.
Both DFS_FREQUENCY_MODE and DLL_FREQUENCY_MODE   should be equal to
LOW (as opposed to HIGH)

This represents a bug in the toolflow (or I suppose a missing feature)
as this could very comfortably be done automatically. I'll file a bug
report on this and it will probably be fixed soon.

Hopefully I'm correct in understanding the problem and have helped
ease your mind about it too.

Cheers,
David George








Re: [casper] PAR could not meet all timing constraints.

2010-12-13 Thread Daniel Esteban Herrera Pena

Hi Mark,

I tried to clock at 100MHz system clock and 400Mz for ADC, now I 
changed
to 200/800 respectively and it compiled! Why adc_clk_buf has issues 
with
lower frequency? Where I can find it in my design? I can't add latency 
if

I don't know where adc_clk_buf signal is. Thank you.

Daniel.


On Sun, 28 Nov 2010 18:59:25 -0800, Mark Wagner 
mwag...@eecs.berkeley.edu wrote:

Hi Daniel,

How fast are you trying to clock you design?  Try opening the timing
report by typing dos('timingan') from the Matlab prompt and
File--Open ./XPS_ROACH_base/implementation/system.twx from inside 
the

design directory.  This should tell you where the offending paths are
(i.e. negative slack).  You could then add latency strategically to
give the data some time to propagate.

Mark

On Wed, Nov 24, 2010 at 1:51 PM, Daniel Esteban Herrera Pena  wrote:
 Hi CASPER team,

 I wanted to test the iADC tutorial on my ROACH but I can't.

 I followed the tutorial changing XSG core from iBOB to sx95t and
removing
 ibop_lwip from original design. Simulation worked perfect but when I
start
 bee_xps the following error appears after a while twice:

 ERROR: 2 constraints not met.

 PAR could not meet all timing constraints. A bitstream will not be
generated.

 I saw what Mark Wagner recommended to see:
 /XPS_ROACH_base/implementation/system_map.mrp

 The thing I have here is a large file but I suspect that the problem
is
 around this part:

 Asterisk (*) preceding a constraint indicates it was not met.
   This may be due to a setup or hold violation.



--
  Constraint                                |  
 Check    | Worst Case |
 Best Case | Timing |   Timing
                                            |
            |    Slack   |
 Achievable | Errors |    Score


--
 * NET iadc_test_adc/iadc_test_adc/adc_clk_ | MAXPERIOD   |  
 -1.666ns|
         |       1|        1666
  buf PERIOD = 10 ns HIGH 50%              | MINLOWPULSE |
    4.666ns|
  5.334ns|       0|           0


--
 * PERIOD analysis for net iadc_test_adc/ia | SETUP       |    
8.535ns|
  1.465ns|       0|           0
  dc_test_adc/adc_clk_dcm derived from  NE | HOLD        |  
  0.148ns|
         |       0|           0
  T iadc_test_adc/iadc_test_adc/adc_clk_bu | MINPERIOD   |    
7.779ns|
  2.221ns|       0|           0
  f PERIOD = 10 ns HIGH 50%  duty cycle co | MAXPERIOD   |  
 -1.666ns|
         |       1|        1666
  rrected to 10 nS  HIGH 5 nS               |          
  |            |
         |        |


--

 Both constraints have a MAXPERIOD of -1.666ns, I don't know that a
minus
 have to do here with time, but is what the report says.

 Do you have any insights of this?. Or I just disable the PAR timing
check?

 Best!

 Daniel Herrera



Links:
--
[1] mailto:danherr...@udec.cl





Re: [casper] PAR could not meet all timing constraints.

2010-11-28 Thread Mark Wagner
Hi Daniel,

How fast are you trying to clock you design?  Try opening the timing report
by typing dos('timingan') from the Matlab prompt and File--Open
./XPS_ROACH_base/implementation/system.twx from inside the design directory.
 This should tell you where the offending paths are (i.e. negative slack).
 You could then add latency strategically to give the data some time to
propagate.

Mark


On Wed, Nov 24, 2010 at 1:51 PM, Daniel Esteban Herrera Pena 
danherr...@udec.cl wrote:

 Hi CASPER team,

 I wanted to test the iADC tutorial on my ROACH but I can't.

 I followed the tutorial changing XSG core from iBOB to sx95t and removing
 ibop_lwip from original design. Simulation worked perfect but when I start
 bee_xps the following error appears after a while twice:

 ERROR: 2 constraints not met.

 PAR could not meet all timing constraints. A bitstream will not be
 generated.

 I saw what Mark Wagner recommended to see:
 model_directory/XPS_ROACH_base/implementation/system_map.mrp

 The thing I have here is a large file but I suspect that the problem is
 around this part:

 Asterisk (*) preceding a constraint indicates it was not met.
   This may be due to a setup or hold violation.


 --
  Constraint|Check| Worst Case |
 Best Case | Timing |   Timing
| |Slack   |
 Achievable | Errors |Score

 --
 * NET iadc_test_adc/iadc_test_adc/adc_clk_ | MAXPERIOD   |-1.666ns|
 |   1|1666
  buf PERIOD = 10 ns HIGH 50%  | MINLOWPULSE | 4.666ns|
  5.334ns|   0|   0

 --
 * PERIOD analysis for net iadc_test_adc/ia | SETUP   | 8.535ns|
  1.465ns|   0|   0
  dc_test_adc/adc_clk_dcm derived from  NE | HOLD| 0.148ns|
 |   0|   0
  T iadc_test_adc/iadc_test_adc/adc_clk_bu | MINPERIOD   | 7.779ns|
  2.221ns|   0|   0
  f PERIOD = 10 ns HIGH 50%  duty cycle co | MAXPERIOD   |-1.666ns|
 |   1|1666
  rrected to 10 nS  HIGH 5 nS   | ||
 ||

 --

 Both constraints have a MAXPERIOD of -1.666ns, I don't know that a minus
 have to do here with time, but is what the report says.

 Do you have any insights of this?. Or I just disable the PAR timing check?

 Best!

 Daniel Herrera