LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Pci > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Mihelogiannakis giorgos<mihelog@c...>
    Date: Fri Apr 1 15:48:30 CEST 2005
    Subject: [pci] PCI Bus at 66 Mhz
    Top
    Hello!
    I did some tests with various clock combinations today. I was in
    quite a rush, when i do more i'll let you know.
    The situation started becoming "interesting" after adding a DCM from
    Xilinx's core generator to the wishbone clock. This had to be done to fix
    the big delay some outputs to the wishbone side had. My goal is to make
    the wishbone side (which is now really IPIF) run at 100 Mhz which
    according to Xilinx ISE is doable, but the outputs to the IPIF (wishbone)
    side had, in some cases, a delay of >10 ns.
    After adding the DCM, the outputs behaved fine, but the problem as i've
    already described (PCI bus signals go and stay in X state in certain times
    of the testbench - possibly different for different clock combinations)
    became worse. Namely, 100Mhz/33 (100 IPIF, 33 PCI) had the X problem. I
    tried adding a DCM to the PCI clock as well.
    The bridge runs fine under 33/33 Mhz. However, it does not in 66/66
    Mhz, even if both clock inputs are driven by a single clock (output of the
    DCM module). 100/66 with the PCI clock also under DCM also does not work.
    At all these tests the clock constraints were modified accordingly, and
    they were met at all times.
    I'll do more tests for clock combinations as well as DCM or not DCM for
    the PCI bus, but the IPIF (wishbone) side apparently has to use DCM to
    avoid the long output delays.
    I looked through the synchronization module, and noticed that only one
    flip flop is used for each direction. As far as i know, this can cause
    problems especially if one clock is not a multiple of the other. I will
    try adding a second, or maybe a third, flip flop in each direction, but
    i'm wondering (and haven't yet investigated i admit) if there are any
    signals that go from one clock domain to another and don't use the
    synchronization module. This will cause a problem since all the signals
    that do go though that module will be delayed for one more cycle, whereas
    the ones that don't will not.

    Do you think the problem lies in the synchronization module? I still
    haven't determined why exactly the PCI bus goes in X state though.

    Thank you very much,
    George Michelogiannakis


    On Fri, 1 Apr 2005, Miha Dolenc wrote:

    > Hi!
    >
    > I have another idea ;)
    > The PNR tool most probably treats paths crossing the clock domains false.
    > That means you can still have some setup/hold violations that have to
    > be taken care of when doing timing simulations.
    > Did you try to compile the design with the same clock constraints on the
    > PCI and WISHBONE and than simulate with the same clock?
    >
    > Regards,
    > Miha Dolenc
    >
    >
    > ----- Original Message -----
    > From: "Mihelogiannakis giorgos" <mihelog@c...>
    > To: "Discussion list about free, open source PCI IP core"
    > <pci@o...>
    > Sent: Wednesday, March 30, 2005 10:01 PM
    > Subject: Re: [pci] PCI Bus at 66 Mhz
    >
    >
    > > Hello!
    > > The problem was with a 100 Mhz Wishbone clock, and 66 Mhz on the PCI
    > > bus. I tried changing the clocks (for example 33 Mhz on the WB and 66 on
    > > the PCI bus) and everything looked good until a burst write was requested,
    > > when everything went X again. I also tried 66 Mhz on both Wishbone and PCI
    > > and all went fine until a burst write wqs requested again. The "all X"
    > > problem occured earlier, when tried to generate configuration cycles on
    > > the PCI bus, in the 100 Mhz WB and 66 Mhz PCI case.
    > > PNR seems to meet I/O constraints with no problem. Unfortunately using
    > > the same clock for wishbone and pci wasn't the solution. Do you think the
    > > problem is only in the pci_synchronizer_flop.v module, and thus if a
    > > custom one was made, nothing else would be needed to make the bridge fully
    > > functional? Lastly, what do you mean disable setup/hold checks on the
    > > synchronization flops? I did not set any explicit checks for those FFs.
    > >
    > > Thank you !
    > > George Michelogiannakis
    > >
    > > On Wed, 30 Mar 2005, Miha Dolenc wrote:
    > >
    > > > Hi!
    > > >
    > > > I don't remember if I asked this before:
    > > > Does PNR meet I/O timing constraints also?
    > > > What clock do you use on the WISHBONE bus?
    > > > PCI/WB clock ratio can be a problem in timing simulations, since
    > flip-flops
    > > > between clock domains can have setup/hold time violations.
    > > > If possible, use same clock for WISHBONE and PCI.
    > > > The other solution is to disable setup/hold checks on the
    > synchronization
    > > > flip-flops.
    > > >
    > > > Best Regards,
    > > > Miha Dolenc
    > > >
    > > >
    > > > ----- Original Message -----
    > > > From: "Mihelogiannakis giorgos" <mihelog@c...> > > > To: <pci@o...> > > > Sent: Tuesday, March 29, 2005 7:05 PM > > > Subject: [pci] PCI Bus at 66 Mhz > > > > > > > > >> Hello everyone, > > >> Sorry to grab your attention for yet another time. The reason this > > >> time is difficulties in making the PCI bus run at 66 Mhz. > > >> According to the timing report while generating a post PNR simulation > > >> model for the PCI bridge, the minimum clock for the PCI bus is 14.2 ns, > > >> which means that 66 Mhz is possible. Therefore, i set the PCI66 > constant > > >> which changes a setting in the configuration space (to indicate that > it's > > >> capable of 66 Mhz) and makes the testbench produce a PCI llock with 15 > ns > > >> period. > > >> Functional simulation works fine, and there is no difference in how > the > > >> bridge operates. However, post PNR simulation model is not so > cooperative. > > >> Although configuration space accesses have no problem (since they don't > > >> use the PCI bus), when it comes to producing configuration space cycles > on > > >> the PCI bus, the PCI bus monitor sees that: > > >> > > >> *** monitor - PCI Real OE signals have X's {F, I, D_T_S, AD, CBE, PERR} > > >> 'bxx0xx0 > > >> > > >> which -of course- is what one can see at the waveform. This happens > when a > > >> read is requested from address 000001e5 (CNF_DATA register if i am not > > >> mistaken) which would produce a configuration read cycle on the PCI > bus. > > >> After that, everything seems damaged in a way, even outputs to the > other > > >> side of the bridge are in X state when they were supposed to be at 1. > > >> Continuing with requests (othe requests) does not help. > > >> Post-map simulation model has the same problem, while post-translate > > >> doesn't. If you are using Xilinx ISE as i am, all project properties > are > > >> at their default values, while the board is xc2vp70 (family Virtex2P) , > > >> speed grade -6 and device package ff1517. > > >> > > >> Thank you very much in advance for nay help you can provide, > > >> George Michelogiannakis > > >> _______________________________________________ > > >> http://www.opencores.org/mailman/listinfo/pci > > > > > > _______________________________________________ > > > http://www.opencores.org/mailman/listinfo/pci > > > > > _______________________________________________ > > http://www.opencores.org/mailman/listinfo/pci > > _______________________________________________ > http://www.opencores.org/mailman/listinfo/pci >

    ReferenceAuthor
    [pci] PCI Bus at 66 MhzMiha Dolenc

    Follow upAuthor
    [pci] PCI Bus at 66 MhzMihelogiannakis giorgos

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.