URL
https://opencores.org/ocsvn/socgen/socgen/trunk
Subversion Repositories socgen
Compare Revisions
- This comparison shows the changes necessary to convert path
/socgen/trunk/common/opencores.org/cde/ip/sram/doc
- from Rev 131 to Rev 133
- ↔ Reverse comparison
Rev 131 → Rev 133
/Geda/html/cde_sram_byte.html
0,0 → 1,215
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<html> |
<head> |
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> |
<title>start</title> |
<meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)"> |
<meta name="CREATED" content="0;0"> |
<meta name="CHANGED" content="20090513;8521600"> |
<meta name="KEYWORDS" content="start"> |
<meta name="Info 3" content=""> |
<meta name="Info 4" content=""> |
<meta name="date" content="2008-01-08T12:01:41-0500"> |
<meta name="robots" content="index,follow"> |
</head> |
<body dir="ltr" lang="en-US"> |
<h1><a name="cde_sram_byte"></a>SOCGEN Datasheet:<br> |
</h1> |
<div id="toc__inside" dir="ltr"> |
<ul> |
<li> |
<p style="margin-bottom: 0in;"><a href="#cde_sram_byte">cde_sram_byte<br> |
</a></p> |
<br> |
<br> |
<br> |
<li> |
<p><a href="../src/cde_sram_byte.v">SourceCode <br> |
</a></p> |
</li> |
<li> |
<p style="margin-bottom: 0in;"><a href="#Parameters">Parameters<br> |
</a></p> |
</li> |
<li> |
<p style="margin-bottom: 0in;"><a href="#Interface">Interface<br> |
</a></p> |
</li> |
<li> |
<p style="margin-bottom: 0in;"><a href="#Children">Children<br> |
</a></p> |
</li> |
<li> |
<p><a href="../../html/cde_sram_byte.html#TheoryofOperation">Theory of Operation<br> |
</a></p> |
</li> |
</ul> |
</li> |
</ul> |
</div> |
<img style="width: 603px; height: 278px;" alt="" src="../png/cde_sram_byte_sym.png"><br> |
<b><br> |
<h2><b><a name="Parameters"></a>Parameters<br></b></h2> |
<b><br> |
<br> |
</b> |
<table style="text-align: left; width: 640px; height: 120px;" border="8" cellpadding="4" cellspacing="4"> |
<tbody> |
<tr> |
<td style="vertical-align: top;">Name<br> </td> |
<td style="vertical-align: top;">default <br> </td> |
<td style="vertical-align: top;">Description<br></td> |
</tr> |
<tr> |
<td style="vertical-align: top;">ADDR<br> </td> |
<td style="vertical-align: top;">0<br> </td> |
<td style="vertical-align: top;">Number of address bits<br></td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">WORDS<br> </td> |
<td style="vertical-align: top;">0<br> </td> |
<td style="vertical-align: top;">Number of memory words. Must be fully addressable by ADDR address bits<br></td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">WRITETHRU<br> </td> |
<td style="vertical-align: top;">0<br> </td> |
<td style="vertical-align: top;">If a read and write occur to the same address on the same cycle then 0 reads old data while 1 reads new<br></td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">DEFAULT<br> </td> |
<td style="vertical-align: top;">{8'bxxxxxxxx}<br> </td> |
<td style="vertical-align: top;">Output read value if cs and rd are not both active <br></td> |
</tr> |
|
</tbody> |
</table> |
<p><b><b><br> |
</b></b></p> |
<p><br> |
</p> |
<p><b><b><br> |
</b></b></p> |
<p><b><b><br> |
<br> |
</b></b></p> |
<h2><b><b><a name="Interface"></a>Interface</b><b> <br> |
</b></b></h2> |
<p style="margin-bottom: 0in;"></p> |
<br> |
<br> |
<br> |
<table style="text-align: left; width: 640px; height: 120px;" border="8" |
cellpadding="4" cellspacing="4"> |
<tbody> |
<tr> |
<td style="vertical-align: top;">NAME<br> </td> |
<td style="vertical-align: top;">Type<br> </td> |
<td style="vertical-align: top;">Description<br> </td> |
</tr> |
<tr> |
<td style="vertical-align: top;">addr[ADDR-1:0 ]<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">Memory address bits<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">be<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">Active high byte enable<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">clk<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">Active high clock<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">cs<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">Active high chip select<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">rd<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">Active high read enable<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">rdata[7:0 ]<br> </td> |
<td style="vertical-align: top;">output<br> </td> |
<td style="vertical-align: top;">read data out<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">wdata[7:0 ]<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">write data in<br> </td> |
</tr> |
|
<tr> |
<td style="vertical-align: top;">wr<br> </td> |
<td style="vertical-align: top;">input<br> </td> |
<td style="vertical-align: top;">Active high write enable<br> </td> |
</tr> |
|
</tbody> |
</table> |
<p><b><b><br> |
</b></b></p> |
<h2><b><a name="Children"></a>Children<br></b></h2> |
<b><br> |
</b> |
<table style="text-align: left; width: 640px; height: 120px;" border="8" cellpadding="4" cellspacing="4"> |
<tbody> |
<tr> |
<td style="vertical-align: top;">Instance<br> </td> |
<td style="vertical-align: top;">Vendor<br> </td> |
<td style="vertical-align: top;">Library<br></td> |
<td style="vertical-align: top;">Component<br></td> |
<td style="vertical-align: top;">Version<br></td> |
</tr> |
</tbody> |
</table> |
<p><b><b><br> |
</b></b></p> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<img style="width: 603px; height: 278px;" alt="" src="../png/cde_sram_byte_sch.png"><br> |
<b><br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
</body> |
</html> |
/Geda/src/cde_sram_byte.v
0,0 → 1,81
/**********************************************************************/ |
/* */ |
/* */ |
/* Copyright (c) 2012-2015 Ouabache Design Works */ |
/* */ |
/* All Rights Reserved Worldwide */ |
/* */ |
/* Licensed under the Apache License,Version2.0 (the'License'); */ |
/* you may not use this file except in compliance with the License. */ |
/* You may obtain a copy of the License at */ |
/* */ |
/* http://www.apache.org/licenses/LICENSE-2.0 */ |
/* */ |
/* Unless required by applicable law or agreed to in */ |
/* writing, software distributed under the License is */ |
/* distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES */ |
/* OR CONDITIONS OF ANY KIND, either express or implied. */ |
/* See the License for the specific language governing */ |
/* permissions and limitations under the License. */ |
/**********************************************************************/ |
module |
cde_sram_byte |
#( parameter |
ADDR=10, |
WORDS=1024, |
WRITETHRU=0, |
DEFAULT=8'bxxxxxxxx |
) |
( |
|
input wire clk, |
input wire cs, |
input wire rd, |
input wire wr, |
input wire be, |
|
input wire [ ADDR-1 : 0] addr, |
input wire [ 7 : 0] wdata, |
output reg [ 7 : 0] rdata); |
// Memory Array |
reg [7:0] mem[0:WORDS-1]; |
|
initial |
begin |
$display("SRAM byte %m.mem"); |
$display(" AddrBits=%d DataBits = 8 Words = %d ",ADDR,WORDS); |
end |
|
// Write function |
always@(posedge clk) |
if( wr && cs && be ) mem[addr[ADDR-1:0]] <= wdata[7:0]; |
generate |
if( WRITETHRU) |
begin |
// Read function gets new data if also a write cycle |
// latch the read addr for next cycle |
reg [ADDR-1:0] l_raddr; |
reg l_cycle; |
|
always@(posedge clk) |
begin |
l_raddr <= addr; |
l_cycle <= rd && cs ; |
end |
|
|
// Read into a wire and then pass to rdata because some synth tools can't handle a memory in a always block |
|
wire [7:0] tmp_rdata; |
assign tmp_rdata = (l_cycle )?mem[{l_raddr[ADDR-1:0]}]:DEFAULT; |
always@(*) rdata = tmp_rdata; |
end |
else |
begin |
// Read function gets old data if also a write cycle |
always@(posedge clk) |
if( rd && cs ) rdata <= mem[{addr[ADDR-1:0]}]; |
else rdata <= DEFAULT; |
end |
endgenerate |
endmodule |
/Geda/sym/cde_sram_byte.sym
0,0 → 1,62
v 20100214 1 |
B 300 0 2800 1700 3 60 0 0 -1 -1 0 -1 -1 -1 -1 -1 |
T 400 1850 5 10 1 1 0 0 1 1 |
device=cde_sram_byte |
T 400 2050 8 10 1 1 0 0 1 1 |
refdes=U? |
P 300 200 0 200 10 1 1 |
{ |
T 400 200 5 10 1 1 0 1 1 1 |
pinnumber=wdata[7:0] |
T 400 200 5 10 0 1 0 1 1 1 |
pinseq=1 |
} |
P 300 400 0 400 10 1 1 |
{ |
T 400 400 5 10 1 1 0 1 1 1 |
pinnumber=addr[ADDR-1:0] |
T 400 400 5 10 0 1 0 1 1 1 |
pinseq=2 |
} |
P 300 600 0 600 4 0 1 |
{ |
T 400 600 5 10 1 1 0 1 1 1 |
pinnumber=wr |
T 400 600 5 10 0 1 0 1 1 1 |
pinseq=3 |
} |
P 300 800 0 800 4 0 1 |
{ |
T 400 800 5 10 1 1 0 1 1 1 |
pinnumber=rd |
T 400 800 5 10 0 1 0 1 1 1 |
pinseq=4 |
} |
P 300 1000 0 1000 4 0 1 |
{ |
T 400 1000 5 10 1 1 0 1 1 1 |
pinnumber=cs |
T 400 1000 5 10 0 1 0 1 1 1 |
pinseq=5 |
} |
P 300 1200 0 1200 4 0 1 |
{ |
T 400 1200 5 10 1 1 0 1 1 1 |
pinnumber=clk |
T 400 1200 5 10 0 1 0 1 1 1 |
pinseq=6 |
} |
P 300 1400 0 1400 4 0 1 |
{ |
T 400 1400 5 10 1 1 0 1 1 1 |
pinnumber=be |
T 400 1400 5 10 0 1 0 1 1 1 |
pinseq=7 |
} |
P 3100 200 3400 200 10 1 1 |
{ |
T 3000 200 5 10 1 1 0 7 1 1 |
pinnumber=rdata[7:0] |
T 3000 200 5 10 0 1 0 7 1 1 |
pinseq=8 |
} |
/Geda/sch/cde_sram_byte.sch
0,0 → 1,41
v 20100214 1 |
C 1600 300 1 0 0 in_port_v.sym |
{ |
T 1600 300 5 10 1 1 0 6 1 1 |
refdes=wdata[7:0] |
} |
C 1600 700 1 0 0 in_port_v.sym |
{ |
T 1600 700 5 10 1 1 0 6 1 1 |
refdes=addr[ADDR-1:0] |
} |
C 1600 1100 1 0 0 in_port.sym |
{ |
T 1600 1100 5 10 1 1 0 6 1 1 |
refdes=wr |
} |
C 1600 1500 1 0 0 in_port.sym |
{ |
T 1600 1500 5 10 1 1 0 6 1 1 |
refdes=rd |
} |
C 1600 1900 1 0 0 in_port.sym |
{ |
T 1600 1900 5 10 1 1 0 6 1 1 |
refdes=cs |
} |
C 1600 2300 1 0 0 in_port.sym |
{ |
T 1600 2300 5 10 1 1 0 6 1 1 |
refdes=clk |
} |
C 1600 2700 1 0 0 in_port.sym |
{ |
T 1600 2700 5 10 1 1 0 6 1 1 |
refdes=be |
} |
C 3900 300 1 0 0 out_port_v.sym |
{ |
T 4900 300 5 10 1 1 0 0 1 1 |
refdes=rdata[7:0] |
} |
/html/cde_sram_byte.html
0,0 → 1,111
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
<html> |
<head> |
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> |
<title>start</title> |
<meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)"> |
<meta name="CREATED" content="0;0"> |
<meta name="CHANGED" content="20090513;8521600"> |
<meta name="KEYWORDS" content="start"> |
<meta name="Info 3" content=""> |
<meta name="Info 4" content=""> |
<meta name="date" content="2008-01-08T12:01:41-0500"> |
<meta name="robots" content="index,follow"> |
</head> |
<body dir="ltr" lang="en-US"> |
<h1><a name="Datasheet"></a>SOCGEN Datasheet:<br> |
</h1> |
<div id="toc__inside" dir="ltr"> |
<ul> |
<li> |
<ul> |
<li> |
<p style="margin-bottom: 0in;"><a href="#TheoryofOperation">Theory of Operation<br> |
</a></p> |
</li> |
</ul> |
</li> |
</ul> |
</div> |
<br> |
<h2><b><a name="TheoryofOperation"></a>Theory of Operation<br></b></h2> |
Add description of how it works<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
<br> |
</body> |
</html> |
html/cde_sram_byte.html
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property