📄 ch02.1a.htm
字号:
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
<TITLE> 2.8 Cell Compilers</TITLE>
</HEAD><!--#include file="top.html"--><!--#include file="header.html"-->
<P><A NAME="pgfId=83872"></A><HR ALIGN=LEFT></P>
<P><A HREF="CH02.htm">Chapter start</A> <A
HREF="CH02.19.htm">Previous page</A> <A HREF="CH02.1b.htm">Next page</A></P>
<H2>2.8 Cell Compilers</H2>
<P><P CLASS="BodyAfterHead"><A NAME="pgfId=83877"></A>The process of hand
crafting circuits and layout for a full-custom IC is a tedious, time-consuming,
and error-prone task. There are two types of automated layout assembly tools,
often known as a <B>silicon compilers</B> . The first type produces a specific
kind of circuit, a <B>RAM compiler</B> or <B>multiplier compiler</B> , for
example. The second type of compiler is more flexible, usually providing
a programming language that assembles or tiles layout from an input command
file, but this is full-custom IC design.</P>
<P><P CLASS="Body"><A NAME="pgfId=89822"></A>We can build a register file
from latches or flip-flops, but, at 4.5–6.5 gates (18–26 transistors) per
bit, this is an expensive way to build memory. Dynamic RAM (DRAM) can use
a cell with only one transistor, storing charge on a capacitor that has
to be periodically refreshed as the charge leaks away. ASIC RAM is invariably
static (SRAM), so we do not need to refresh the bits. When we refer to RAM
in an ASIC environment we almost always mean SRAM. Most ASIC RAMs use a
six-transistor cell (four transistors to form two cross-coupled inverters
that form the storage loop, and two more transistors to allow us to read
from and write to the cell). RAM compilers are available that produce <B>single-port
RAM</B> (a single shared bus for read and write) as well as <B>dual-port
RAMs</B> , and <B>multiport RAMs</B> . In a multi-port RAM the compiler
may or may not handle the problem of <B>address contention</B> (attempts
to read and write to the same RAM address simultaneously). RAM can be <B>asynchronous</B>
(the read and write cycles are triggered by control and/or address transitions
asynchronous to a clock) or <B>synchronous</B> (using the system clock).</P>
<P><P CLASS="Body"><A NAME="pgfId=83882"></A>In addition to producing layout
we also need a <B>model compiler</B> so that we can verify the circuit at
the behavioral level, and we need a netlist from a <B>netlist compiler</B>
so that we can simulate the circuit and verify that it works correctly at
the structural level. Silicon compilers are thus complex pieces of software.
We assume that a silicon compiler will produce working silicon even if every
configuration has not been tested. This is still ASIC design, but now we
are relying on the fact that the tool works correctly and therefore the
compiled blocks are <B>correct by construction</B> .</P>
<P><HR ALIGN=LEFT></P>
<P><A HREF="CH02.htm">Chapter start</A> <A
HREF="CH02.19.htm">Previous page</A> <A HREF="CH02.1b.htm">Next page</A>
</BODY>
<!--#include file="Copyright.html"--><!--#include file="footer.html"-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -