OpenCores
no use no use 1/1 no use no use
Implement fpga specific Ram model on MAX II
by rajan_dd on Sep 11, 2005
rajan_dd
Posts: 9
Joined: Jul 12, 2010
Last seen: Aug 4, 2022
Dear sir

About removing the save module, I have very less logic area available
and I have found removing the slave module frees more space the just
grounding, so I would like to remove the slave module and other
modules if they can be and if they will not have any adverse effect on
the core. Please let me know if it is possible to reduce the logis
used in any other way.

As someone from the forum said to implement fpga specific ram model, I
tried to do it. But I found out that MAX II (CPLD im using) dose not
have any kind of RAM blocks. So the ram has to be implemented in the
logic area itself.
And a Generic two-port synchronous RAM model is provided in both the
files i.e. pci_pci_tpram.v, pci_wb_tpram.v.

The code of generic ram is as bellow:

`ifdef PCI_WB_RAM_SELECTED // if this is defined it dose not implement
the generic ram
`else
//
// Generic two-port synchronous RAM model
//

//
// Generic RAM's registers and wires
//
reg [dw-1:0] mem [(1 reg [dw-1:0] do_reg_b; // RAM data output register

//
// Data output drivers
//
assign do_a = {dw{1'b0}} ;
assign do_b = do_reg_b ;

//
// RAM read and write
//
always @(posedge clk_a)
if (ce_a && we_a)
mem[addr_a]
//
// RAM read and write
//
always @(posedge clk_b)
if (ce_b)
do_reg_b `endif

So if PCI_WB_RAM_SELECTED is not defined the generic ram is used, and
in my case I think because MAX II dose not have any ram blocks I donÂ’t
need to implement any specific ram, and let the compiler use the
generic ram.

This is what I have learned after following some instructions on
theforoum, please let me know if im wrong anywhere.

Please note MAX II dose not have any kind of RAM block

Im using Quartus II Ver. 5 for this project with MAX II family of CLPD.

Thankyou in advance.

Regards
Rajan
Implement fpga specific Ram model on MAX II
by Unknown on Sep 12, 2005
Not available!
Hi! You are right about the RAMs. Make sure you define PCI_RAM_DONT_SHARE and WB_RAM_DONT_SHARE also. About removing the WB Slave Unit: You can remove it completely, but you have to be carefull how you wire its outputs. If you hardwire the wrong value, the code will be broken. I suggest that you run a simulation only to apply reset to the core. The values on the WB slave unit's outputs during reset are the ones you should put on the wires after the unit is removed. Hope this helps, regards Miha Dolenc ----- Original Message ----- From: rajan_dd at yahoo.com> To: pci at opencores.org> Sent: Sunday, September 11, 2005 11:48 AM Subject: [pci] Implement fpga specific Ram model on MAX II
Dear sir About removing the save module, I have very less logic area available and I have found removing the slave module frees more space the just grounding, so I would like to remove the slave module and other modules if they can be and if they will not have any adverse effect on the core. Please let me know if it is possible to reduce the logis used in any other way. As someone from the forum said to implement fpga specific ram model, I tried to do it. But I found out that MAX II (CPLD im using) dose not have any kind of RAM blocks. So the ram has to be implemented in the logic area itself. And a Generic two-port synchronous RAM model is provided in both the files i.e. pci_pci_tpram.v, pci_wb_tpram.v. The code of generic ram is as bellow: `ifdef PCI_WB_RAM_SELECTED // if this is defined it dose not implement the generic ram `else // // Generic two-port synchronous RAM model // // // Generic RAM's registers and wires // reg [dw-1:0] mem [(1http://www.opencores.org/mailman/listinfo/pci



Implement fpga specific Ram model on MAX II
by Unknown on Sep 13, 2005
Not available!
Hi Miha Dolenc That really helped me building up my confidance. Thanks alot for your help Regards Rajan Gajjar --- Miha Dolenc mihad at opencores.org> wrote:
Hi! You are right about the RAMs. Make sure you define PCI_RAM_DONT_SHARE and WB_RAM_DONT_SHARE also. About removing the WB Slave Unit: You can remove it completely, but you have to be carefull how you wire its outputs. If you hardwire the wrong value, the code will be broken. I suggest that you run a simulation only to apply reset to the core. The values on the WB slave unit's outputs during reset are the ones you should put on the wires after the unit is removed. Hope this helps, regards Miha Dolenc ----- Original Message ----- From: rajan_dd at yahoo.com> To: pci at opencores.org> Sent: Sunday, September 11, 2005 11:48 AM Subject: [pci] Implement fpga specific Ram model on MAX II
> Dear sir
>
> About removing the save module, I have very less

logic area available
> and I have found removing the slave module frees

more space the just
> grounding, so I would like to remove the slave

module and other
> modules if they can be and if they will not have

any adverse effect on
> the core. Please let me know if it is possible to

reduce the logis
> used in any other way.
>
> As someone from the forum said to implement fpga

specific ram model, I
> tried to do it. But I found out that MAX II (CPLD

im using) dose not
> have any kind of RAM blocks. So the ram has to be

implemented in the
> logic area itself.
> And a Generic two-port synchronous RAM model is

provided in both the
> files i.e. pci_pci_tpram.v, pci_wb_tpram.v.
>
> The code of generic ram is as bellow:
>
> `ifdef PCI_WB_RAM_SELECTED // if this is defined

it dose not implement
> the generic ram > `else > // > // Generic two-port synchronous RAM model > // > > // > // Generic RAM's registers and wires > // > reg [dw-1:0] mem [(1 reg [dw-1:0] do_reg_b; // RAM data output

register
>
> //
> // Data output drivers
> //
> assign do_a = {dw{1'b0}} ;
> assign do_b = do_reg_b ;
>
> //
> // RAM read and write
> //
> always @(posedge clk_a)
> if (ce_a && we_a)
> mem[addr_a] >
> //
> // RAM read and write
> //
> always @(posedge clk_b)
> if (ce_b)
> do_reg_b > `endif
>
> So if PCI_WB_RAM_SELECTED is not defined the

generic ram is used, and
> in my case I think because MAX II dose not have

any ram blocks I don't
> need to implement any specific ram, and let the

compiler use the
> generic ram.
>
> This is what I have learned after following some

instructions on
> theforoum, please let me know if im wrong

anywhere.
>
> Please note MAX II dose not have any kind of RAM

block
>
> Im using Quartus II Ver. 5 for this project with

MAX II family of CLPD.
> > Thankyou in advance. > > Regards > Rajan > _______________________________________________ > http://www.opencores.org/mailman/listinfo/pci
_______________________________________________ http://www.opencores.org/mailman/listinfo/pci
______________________________________________________ Yahoo! for Good Donate to the Hurricane Katrina relief effort. http://store.yahoo.com/redcross-donate3/
no use no use 1/1 no use no use
© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.