[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: bidirectional delay in verilog?




----- Original Message -----
From: DJ Delorie 
Date: Wednesday, April 22, 2009 12:43 am
Subject: gEDA-user: bidirectional delay in verilog?
To: geda-user@xxxxxxxxxxxxxx

> 
> I want to simulate the propogation delay through the fpga IOBs 
> and the
> traces on the board.  However, some of the lines are bidirectional
> (specifically, the data lines).  It's easy enough (I'm assuming) to
> assign a delay on a unidirectional line, but what about bidirectional
> lines?
> 
> 

Are you modeling the FPGA and the DRAM (I'm assuming it's the DRAM, not that it 
matters so much)? Are you using a test bench to run this?  You could do something like 
this:

| FPGA  | --------- | DRAM |

Make the DRAM a purely functional model, very simple, and add the flight time into to the 
input and output delays.  You can model the DRAM IO as a dedicated input plus a wire-
or'd tristate output device.  So maybe the flight time on the wire is 1 nS, you setup the 
DRAM input delay as 1 nS.  Then add 1 nS onto the output buffer of the DRAM to model 
the flight time back to the FPGA.  

Use a test bench to combine the FPGA and the DRAM into one device, wired together as 
needed.  Then just excercise it anyway you like.  It doesn't have to be a test bench per-
se, since a hierarchical verilog source file is the same thing, and you can simulate that 
as well.

As for the IOB's.  Hmm. One way is to use the timing simulation file that XST creates, 
post layout.  I think it is in verilog, or can be made in verilog via some selection.  You can 
just plug it into the setup I was just mentioning.  If that is not the case, then you can 
model the IOB as a dedicated input and tri-stated output and add the delays you like.  
(this is how the fpga builds bidirectional  lines anyway, they can't build wire-or inside the 
part)

   FPGA IOB                     the wire             DRAM IOB

|Tri-state output |->>----------------------- >>-| input buffer|
|Input Buffer     |-<<-|                           <<-| Tristate output |




_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user