Re: EDK/Xilinx : Insertion of ECC capability into BRAM controller



Hi Jon,

The VHDL for the Xilinx BRAM controller is provided with the EDK. Look in
C:\EDK\hw\XilinxProcessorIPLib\pcores\plb_bram_if_cntlr_v1_00_b (or
wherever you installed the EDK on your machine). There's a similar core for
the OPB, and a base library in bram_if_cntlr_v1_00_b

You should be able to copy and merge the appropriate folders and use it as a
custom core in your own EDK project. You'll probably want to pick a new
core name instead of plb_bram_if_cntlr to avoid confusion. Be sure to
rename all of the appropriate files. (I found this to be a big pain to get
right if you've never made a custom core before. You could use the Xilinx
wizard to create an empty PLB or OPB core and use it as an example of their
naming and version number conventions.)

The BRAM is not instantiated as part of the controller. You use the separate
bram_block core in the EDK for it. You should be able to copy that core as
well and modify it if needed. Also, you should be able to find examples of
how the controller and BRAM core are connected. There are plenty of basic
examples of a PowerPC, PLB bus, controller, and BRAM memory available
online.

Hope this helps,

Jeff


"Jon Anderson" <jon@xxxxxxxxxx> wrote in message
news:ee99836.-1@xxxxxxxxxxxxxxxx
Greetings.

I am looking to figure out a way to modify an existing BRAM controller
(connected to either OPB or PLB) to add ECC capabilities. I am using EDK
7.1i, and it appears that controllers instantiated there cannot be
modified. I have looked at Xilinx XAPP645 and understand how it works, but
can't find a way to insert the VHDL into an existing controller.

Basically, I'm trying to break the connection at PORTA such that the data
will run through the ECC encoder to the BRAM, but the address and control
lines are still intact (and connected to to the BRAM blocks). It seems
like it should be a fairly straightforward exercise, but I have had zero
success.

The other part of the issue is that BRAM itself appears to be instantiated
as part of the controller, so I also need to have a way to support the
extra data as well. I appear to be getting BRAMs with the additional bit
for parity data, but have no good way to access it.

This is being done on a Virtex-II Pro, and I'm connecting to the PPC core.
However, I don't think this is application-specific, since I should be
able to do the same thing with a Microblaze, for example.

Thanks!


.



Relevant Pages

  • Xilinx EDK BRAM confusion
    ... I have 2 questions on different ways of using BRAM in EDK: ... I have created a PPC system with DSOCM_BRAM and I am trying to make one ... I was hoping that I could configure the controller for 128 KB ...
    (comp.arch.fpga)
  • 1394 w/Core 2 Duo - 945PM Express chipset (Dell Laptop)
    ... I am testing a brand new Dell Latitude D820 laptop which uses the 945PM ... Express Chipset and the Core 2 Duo 2GHz CPU. ... CPU or some 3-rd party controller... ... this, but so far, I am the first one to suspect this Core 2 Duo system ...
    (microsoft.public.windowsxp.hardware)
  • Re: [spi-devel-general] [PATCH v2] spi: Add support for the OpenCores SPI controller.
    ... word size because the controller simply has no concept of word sizes. ... Is this the http://www.opencores.org/?do=project&who=spi core? ... So long as they don't couple "transfer" with chipselect activation ... what I've been doing is just copy the transmission buffer in blocks ...
    (Linux-Kernel)
  • Re: Hardware =?ISO-8859-1?Q?f=FCr?= Server unter W2k und Linux
    ... Aktuelle Core 2 Duo usw. laufen jedenfalls. ... eigenem BIOS herstellen. ... entsprechenden Controller unter W2k hat. ...
    (de.comp.hardware.misc)
  • Xilinx XCL woes
    ... There will be quite a lot of data moving around, and also I want the thing to be self-serving, not need to call the CPU to make a request to opb_central_dma, so I connected it to the mch_opb_sdram controller using one of the MCH/XCL channels, not on the OPB bus. ... There will be another core with the same interface, the SDRAM acting like a large FIFO between the two. ... Note that here it emits to the FIFO every 2 clock cycles. ...
    (comp.arch.fpga)