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

Subversion Repositories socgen

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

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

Rev 54 Rev 56
Line 16... Line 16...
<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 from 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 inefficiencies 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>
<br>
<br>
<h2><a name="manifesto"></a><font size="+2">Principles for Reusable
<h2><a name="manifesto"></a><font size="+2">Principles for Creating
design</font><br>
Reusable Design</font>s<br>
</h2>
</h2>
<p><br>
<p><br>
</p>
</p>
<br>
<br>
<h2><font size="+1">Plan ahead<br>
<h2><font size="+1">Plan ahead<br>
Line 100... Line 100...
 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>
 
<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 Revision Control System&nbsp; if
added that you need to check into the Revision Control System&nbsp; if
they are buried by
they are buried by
Line 113... Line 114...
only
only
contain the minimal seed data needed to rebuild the entire design. It
contain the minimal seed data needed to rebuild the entire design. It
should never contain any files that were generated by the build
should never contain any files that were generated by the build
process. <br>
process. <br>
<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
 size="+1">Store files based on their source and not their use.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></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">Store files based on their source and not their use.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></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>
Line 124... Line 126...
a spot inside your chip database for Joes files? Because that is not
a spot inside your chip database for Joes files? Because that is not
planning ahead. Later if your lab starts another chip that also uses
planning ahead. Later if your lab starts another chip that also uses
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">.<br>
 
<br>
 
<br>
 
</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></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><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><font><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 file.</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></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>
"Unlike" is a deliberately nebulous 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>
file and then use a tool to put them back together.<br>
<br>
<br>
<br>
<br>
<h2></h2>
<h2></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">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>
 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>
Line 155... Line 160...
<br>
<br>
</p>
</p>
<br>
<br>
<br>
<br>
<br>
<br>
 
<br>
 
<br>
<h2><a name="manifesto"></a>Database Guidelines</h2>
<h2><a name="manifesto"></a>Database Guidelines</h2>
<p></p>
<p></p>
<p></p>
<p></p>
<br>
<br>
<p><img style="width: 800px; height: 600px;" alt=""
<p><img style="width: 800px; height: 600px;" alt=""
Line 176... Line 183...
<h2>DOC<br>
<h2>DOC<br>
</h2>
</h2>
The documentation&nbsp; directory.
The documentation&nbsp; directory.
<br>
<br>
<br>
<br>
<br>
 
<h2>LIB</h2>
 
<p>A library is a collection of building blocks&nbsp; that may not be
 
synthesizable in
 
all target technologies and may require customizations. The use of lib
 
parts in the rtl code will
 
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 synthesize 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 proprietary tools that are used.<br>
instructions for any proprietary tools that are used.<br>
</p>
</p>
<p><br>
 
<br>
<br>
</p>
<br>
 
<h2>LIB</h2>
 
<p>A library is a collection of building blocks&nbsp; that may not be
 
synthesizable in
 
all target technologies and may require customizations. The use of lib
 
parts in the rtl code will
 
facilitate porting a component into different technologies.</p>
 
<br>
<h2>BENCH<br>
<h2>BENCH<br>
</h2>
</h2>
<p>A testbench is used for all simulations and test suites. Any system
<p>A testbench is used for all simulations and test suites. Any system
or component may be simulated. Components can only do generic rtl sims
or component may be simulated. Components can only do generic rtl sims
while systems may do either generic rtl ,specific rtl or gate sims.
while systems may do either generic rtl ,specific rtl or gate sims.
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>
<p><br>
<br>
 
<h2>TARGETS</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>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<h2>PROJECT</h2>
<h2>PROJECTS</h2>
<p>A project is a collection of components. A database must define at
<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.
least one project to create an area where components may be stored.
Other projects may be created as needed to group similar components
Other projects may be created as needed to group similar components
together and reducing clutter. If any component in a project uses a
together and reducing clutter. <br>
component from a child project then that child project must also be
 
included in the parent project.</p>
 
<p><br>
 
<br>
 
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<h2>COMPONENT</h2>
<p><br>
<p>A component is a&nbsp; basic building block that may be used to make
<img style="width: 800px; height: 600px;" alt=""
other components.</p>
 src="../png/data_fig2.png"><br>
<br>
 
<p>
 
</p>
</p>
 
<p></p>
<br>
<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>
<br>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
 
<h2>WORK<br>
 
</h2>
 
<p>The work directory is a composite image of the projects directory
 
plus any additional links needed for simulation and synthesis. All
 
design processes are run in this directory and it contains all the
 
generated files that are produced.<br>
 
</p>
 
<p><br>
 
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>

powered by: WebSVN 2.1.0

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