OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [doc/] [src/] [guides/] [guide_database.html] - Diff between revs 49 and 54

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 49 Rev 54
Line 11... Line 11...
  <meta name="Info 4" content="">
  <meta name="Info 4" content="">
  <meta name="date" content="2008-01-08T12:01:41-0500">
  <meta name="date" content="2008-01-08T12:01:41-0500">
  <meta name="robots" content="index,follow">
  <meta name="robots" content="index,follow">
</head>
</head>
<body dir="ltr" lang="en-US">
<body dir="ltr" lang="en-US">
<div id="toc__header" dir="ltr">
 
<p><br>
 
<br>
 
</p>
 
</div>
 
<h1><a name="socgen_project"></a><font size="+3">SOCGEN Project</font></h1>
<h1><a name="socgen_project"></a><font size="+3">SOCGEN Project</font></h1>
<h2><br>
<h2><br>
</h2>
</h2>
The mission of the SOCGEN project is to provide a blueprint showing
The mission of the SOCGEN project is to provide a blueprint showing
digital designers how to create a System_on_chip (SOC) by
digital designers how to create a System_on_chip (SOC) by
assembling&nbsp; components created by a variety of sources. It will
assembling&nbsp; components created by a variety of sources. It will
show how to create a component that can be reused and provides&nbsp; a
show how to create a component that can be reused and provides&nbsp; a
free opensourced tool set&nbsp; that can be used to assemble and verify
free opensourced tool set&nbsp; that can be used to assemble and verify
a design. It employs modern design for reuse techniques to reduce the
a design. It employs modern design for reuse techniques to reduce the
waste and ineffiencies that is inherent in handcrafting a design<br>
waste and inefficiencies that is inherent in handcrafting a design<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Line 46... Line 41...
for one specific purpose only to find out later that other designers
for one specific purpose only to find out later that other designers
want to use it. Create all designs with the intent that they will be
want to use it. Create all designs with the intent that they will be
reused in ways that you haven't imagined and you won't have to scramble
reused in ways that you haven't imagined and you won't have to scramble
later.&nbsp; <br>
later.&nbsp; <br>
<br>
<br>
<h2><font><font size="+1">Design for the lowest common demoninator</font></font></h2>
<br>
 
<h2><font size="+1">Maintain the design<br>
 
</font></h2>
 
Releasing a chip to production is not the end of the job. You must
 
still continue to maintain the design. You cannot archive a chip data
 
base into offline storage and simply put it on the shelf. Do you really
 
think that you can pull it down 20 years later and recreate the chip?
 
Bit Rot is real. Even if you can read the bits off the magtape that you
 
used to use then you will find that you can no longer get the same
 
version of the tools that you used &nbsp; to build the chip. The
 
original IC process will be long gone and the current ones have added
 
new requirements that your code doesn't meet.<br>
 
<br>
 
When you finish a chip you archive an exact copy of all the data and
 
freeze that forever. Your design then continues to live on.&nbsp; When
 
you get a new version of a tool you rebuild and test&nbsp; everything
 
and fix problems. As new processes come online you retarget the design
 
to use them. As component ip is reved you upgrade and run the test
 
suite.<br>
 
<br>
 
Then when your original product is winding down and someone wants a
 
follow up product then you have a head start.<br>
 
<br>
 
<br>
 
<h2><font><font size="+1">Design for the lowest common denominator</font></font></h2>
Everybody loves to use some quirky little feature of the design target
Everybody loves to use some quirky little feature of the design target
to squeeze a little extra preformance out of the system. But if you do
to squeeze a little extra performance out of the system. But if you do
then you are locked into that target and cannot easily reuse the design
then you are locked into that target and cannot easily reuse the design
on a different target. Why do you think they put those features in the
on a different target. Why do you think they put those features in the
first place? Instead you should survey the field and only use the
first place? Instead you should survey the field and only use the
features that all target technologies can match<br>
features that all target technologies can match<br>
<br>
<br>
<br>
<br>
<h2><font><font><font><font size="+1">Design in a completely generic
<h2><font><font><font><font size="+1">Design in a completely generic
technology<br>
technology<br>
</font></font></font></font></h2>
</font></font></font></font></h2>
Design is a two step process. First the design is created and verified
Design is a two step process. First the design is created and verified
in a completely generic behaverioral RTL format and then converted into
in a completely generic behavioral RTL format and then converted into
the target technology. It is tempting to try to save time be designing
the target technology. It is tempting to try to save time be designing
in the target technology but this will make it harder to reuse.<br>
in the target technology but this will make it harder to reuse.<br>
<br>
<br>
<br>
<br>
<h2><font><font><font><font><font><font><font><font size="+1">Automate
<h2><font><font><font><font><font><font><font><font size="+1">Automate
Line 75... Line 94...
tool.&nbsp; The designers job is to create the configuration files
tool.&nbsp; The designers job is to create the configuration files
needed by the tools and let automation do all the work.<br>
needed by the tools and let automation do all the work.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<h2><font><font><font><font><font><font><font><font size="+1">Never
 
Check Generated Files into a Database</font></font></font></font></font></font></font></font></h2>
 
The Revision Control System (RCS) that contains the design should only
 
contain the minimul seed data needed to rebuild the entire design. It
 
should never contain any files that were generated by the build
 
process. <br>
 
<br>
 
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
 size="+1">Do not keep duplicate copies of a file in the database</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
 size="+1">Do not keep duplicate copies of a file in the database</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
Doing so makes it difficult to ensure that bug fixes and enhancements
Doing so makes it difficult to ensure that bug fixes and enhancements
created by one user can be made available to all users. Every file
created by one user can be made available to all users. Every file
should have one and only one location in the database<br>
should have one and only one location in the database<br>
<br>
<br>
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
 size="+1">Do not build&nbsp; the design inside of an RCS database.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
 size="+1">Do not build&nbsp; the design inside of an RCS database.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
It is really hard to keep track of all the new files that you have
It is really hard to keep track of all the new files that you have
added that you need to check into the RCS&nbsp; if they are buried by
added that you need to check into the Revision Control System&nbsp; if
 
they are buried by
gigabytes of generated files from the build process. Use symbolic links
gigabytes of generated files from the build process. Use symbolic links
to create a work area where generated files are kept outside the
to create a work area where generated files are kept outside the
database.<br>
database.Never check a generated file in an RCS repository. They should
 
only
 
contain the minimal seed data needed to rebuild the entire design. It
 
should never contain any files that were generated by the build
 
process. <br>
<br>
<br>
<p>
<p>
</p>
</p>
<p></p>
<p></p>
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
Line 109... Line 126...
Joes IP then they will also need access to those files. Create a spot
Joes IP then they will also need access to those files. Create a spot
for files where everybody can simply access them by linking the desired
for files where everybody can simply access them by linking the desired
files into there database<font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
files into there database<font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
 size="+1">.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>
 size="+1">.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>
<p></p>
<p></p>
<h2><br>
 
</h2>
 
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
 size="+1">Do not mix unlike objects in the same container.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
 size="+1">Do not mix unlike objects in the same container.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
<p>"Unlike" is a delibertely nebulious term. It can mean anything and
"Unlike" is a deliberately nebulous term. It can mean anything and
everything. If you have a instance of a hard macro that is
everything. If you have a instance of a hard macro that is
unsynthesizable then do not put it in a file along with synthesisable
unsynthesizable then do not put it in a file along with synthesisable
rtl code. If you have code belonging to one designer then do not mix it
rtl code. If you have code belonging to one designer then do not mix it
with code belonging to another. If you do then you have to worry about
with code belonging to another. If you do then you have to worry about
file locking. Fragment the design so that each object is in it's own
file locking. Fragment the design so that each object is in it's own
container and then use a tool to put them back together.<br>
container and then use a tool to put them back together.<br>
</p>
 
<br>
<br>
<br>
<br>
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font>Layer
<h2></h2>
the
<h2><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font
design.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
 size="+1">Layer the design.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></h2>
 
<font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>
<p>A full design will consist of several different databases that are
<p>A full design will consist of several different databases that are
layered. Upper ones may override any content from a lower layer<br>
layered. Upper ones may override any content from a lower layer.&nbsp;
 
Requirements created by the Component Designers are only minimums, The
 
Architects and Si-Makers are free to override and tighten any
 
requirement from any lower level.&nbsp; Parameters should be used to
 
give the downstream&nbsp; designers the ability to tune the design for
 
the target process.<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<br>
<br>
Line 146... Line 166...
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<h2>SYSTEM<br>
 
</h2>
 
<p>A system&nbsp; is at least&nbsp; one PCA containing a targeted
 
component&nbsp; interconnected with&nbsp;
 
other electronic components and bus functional models. <br>
 
</p>
 
<p><br>
<p><br>
</p>
</p>
<h2>TARGET</h2>
 
<p>A target is a specific physical design that can implement a
 
component. Targets can be asic or fpga and include a Printed circuit
 
board(PCB) that may include other electronic components. The goal for
 
all components is to assign them to at least one target and prove that
 
the work in silicon<br>
 
</p>
 
<p>
 
<br>
<br>
<br>
 
</p>
 
<h2>PROJECT</h2>
 
<p>A project is a collection of components. A database must define at
 
least one project to create an area where components may be stored.
 
Other projects may be created as needed to group similar components
 
together and reducing clutter. If any component in a project uses a
 
component from a child project then that child project must also be
 
included in the parent project.</p>
 
<p><br>
<p><br>
<br>
 
</p>
</p>
<p><br>
<h2>DOC<br>
 
</h2>
 
The documentation&nbsp; directory.
<br>
<br>
</p>
 
<h2>COMPONENT</h2>
 
<p>A component is a&nbsp; basic building block that may be used to make
 
other components.</p>
 
<br>
<br>
<p>
 
</p>
 
<br>
<br>
<h2>LIB</h2>
<h2>LIB</h2>
<p>A library is a collection of building blocks&nbsp; that may not be
<p>A library is a collection of building blocks&nbsp; that may not be
synthesiable in
synthesizable in
all target technologies and may require customizations. The use of lib
all target technologies and may require customizations. The use of lib
parts in the rtl code will
parts in the rtl code will
facilitate porting a component into different technologies.</p>
facilitate porting a component into different technologies.</p>
<p><br>
<p><br>
</p>
</p>
<h2>TOOLS<br>
<h2>TOOLS<br>
</h2>
</h2>
<p>The tools directory contains all of the socgen tools needed to build
<p>The tools directory contains all of the socgen tools needed to build
, simulate and synthesise all of the systems and components in the
, simulate and synthesize all of the systems and components in the
database. Scripts and installation instructions are provided for any
database. Scripts and installation instructions are provided for any
other opensource tools that may be required. There are also
other opensource tools that may be required. There are also
instructions for any propritory tools that are used.<br>
instructions for any proprietary tools that are used.<br>
</p>
</p>
<br>
 
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<h2>BENCH<br>
<h2>BENCH<br>
</h2>
</h2>
Line 215... Line 206...
Generic rtl models are included in the socgen library, specific ones
Generic rtl models are included in the socgen library, specific ones
must be obtained from the IC vendor.<br>
must be obtained from the IC vendor.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<br>
 
<h2>DOC<br>
 
</h2>
 
The documentation&nbsp; directory.
 
<br>
 
<br>
 
<br>
 
<br>
 
<br>
 
<p><br>
<p><br>
</p>
</p>
 
<p><br>
 
</p>
 
<h2>PROJECT</h2>
 
<p>A project is a collection of components. A database must define at
 
least one project to create an area where components may be stored.
 
Other projects may be created as needed to group similar components
 
together and reducing clutter. If any component in a project uses a
 
component from a child project then that child project must also be
 
included in the parent project.</p>
 
<p><br>
<br>
<br>
 
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
 
<h2>COMPONENT</h2>
 
<p>A component is a&nbsp; basic building block that may be used to make
 
other components.</p>
 
<br>
 
<p>
 
</p>
 
<br>
 
<h2>TARGET</h2>
 
<p>A target is a specific physical design that can implement a
 
component. Targets can be asic or fpga and include a Printed circuit
 
board(PCB) that may include other electronic components. The goal for
 
all components is to assign them to at least one target and prove that
 
the work in silicon<br>
 
</p>
 
<br>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.