mirror of https://github.com/VLSIDA/OpenRAM.git
Update precharge section.
This commit is contained in:
parent
f457091bba
commit
93c66ec45d
Binary file not shown.
|
|
@ -25,13 +25,13 @@
|
|||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="161.5"
|
||||
inkscape:cx="20"
|
||||
inkscape:cy="520"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="752"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1392"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1">
|
||||
|
|
@ -185,7 +185,7 @@
|
|||
id="tspan4519"
|
||||
x="184"
|
||||
y="577.36218"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">BL</tspan></text>
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">bl</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
|
||||
|
|
@ -196,7 +196,7 @@
|
|||
id="tspan4523"
|
||||
x="336"
|
||||
y="577.36218"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">BL_bar</tspan></text>
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">br</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
|
||||
|
|
@ -207,7 +207,7 @@
|
|||
id="tspan4527"
|
||||
x="287"
|
||||
y="217.36218"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">VDD</tspan></text>
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">vdd</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 237,346.36218 77,0"
|
||||
|
|
@ -263,7 +263,7 @@
|
|||
id="tspan4793"
|
||||
x="271"
|
||||
y="334.36218"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">CLK</tspan></text>
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif">en</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
|
@ -102,27 +102,28 @@ rows.
|
|||
The precharge circuit is depicted in Figure~\ref{fig:precharge} and is
|
||||
implemented by three PMOS transistors. The input signal to the cell,
|
||||
clk, enables all three transistors during the first half of a read or
|
||||
write cycle (i.e. while the clock signal is low). M1 and M2 charge BL
|
||||
and BLB to Vdd and M3 helps to equalize the voltages seen on BL and
|
||||
BLB.
|
||||
write cycle (i.e. while the clock signal is low). M1 and M2 charge bl
|
||||
and br to vdd while M3 equalizes the voltages seen between the bitlines.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=5cm]{./figs/precharge_schem.pdf}
|
||||
\caption{Schematic of a single precharge cell. \fixme{Change PCLK to CLK.}}
|
||||
\caption{Schematic of a precharge circuit.}
|
||||
\label{fig:precharge}
|
||||
\end{figure}
|
||||
|
||||
In OpenRAM, the precharge citcuitry is dynamically generated using the
|
||||
parameterized transistor class (\verb|ptx|). The \verb|precharge|
|
||||
class in \verb|precharge.py| dynamically generates a single precharge cell.
|
||||
parameterized transistor class ptx which is further discussed in
|
||||
Section~\ref{sec:ptx}. The offsets of the bitlines and the width of
|
||||
the precharge cell are equal to the bitcell so that the bitlines are
|
||||
correctly connected by abutment. The precharge class in
|
||||
\verb|modules/precharge.py| dynamically generates a single precharge
|
||||
cell.
|
||||
|
||||
\verb|modules/precharge_array.py| creates a row of precharge cells at
|
||||
the top of a bitcell array.
|
||||
|
||||
|
||||
The offsets of the bitlines and the width of the precharge cell are
|
||||
equal to the 6T cell so that the bitlines are correctly connected down
|
||||
to the 6T cell. The \verb|precharge_array| class is then used to
|
||||
generate a precharge array, which is a single row of \textbf{n}
|
||||
precharge cells, where \textbf{n} equals the number of columns in the
|
||||
bitcell array.
|
||||
|
||||
|
||||
\subsection{Address Decoders}
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue