Skip to content
Snippets Groups Projects
Commit 3d711a4d authored by David Lanzendörfer's avatar David Lanzendörfer
Browse files

Updating formatting

parent bb095911
No related branches found
No related tags found
No related merge requests found
Pipeline #50 passed with stage
in 1 minute and 13 seconds
......@@ -91,7 +91,20 @@ body {
img[alt=pageimg] {
width: 50%;
width: 500px;
border: none;
background: none;
}
img[alt=pageimg2] {
width: 300px;
border: none;
background: none;
}
img[alt=pdfimg] {
width: 120px;
margin-top: 20px;
border: none;
background: none;
}
......@@ -34,14 +34,7 @@ In addition to these efforts, we also aim at providing valuable contribution in
* **Support the development of EDA tools** by advising on, and contributing to, the development of FOSS IC design software
* **Increase the scope and quality of available free silicon IP libraries** by developing our own libraries and contributing to the development of others
## Our roadmap
The roadmap itself can be found here through the [Roadmap Wiki Link](https://wiki.libresilicon.com/index.php?title=Roadmap#Our_roadmap)
Here's an overview of what we have done so far.
### Standard Cell Library Generator
## Standard Cell Library Generator
Standard Cells are the basic building blocks of modern chip-design, they are used to automatically synthesize, place and route digital logic into chips. The synthesis step (e.g. done with yosys) chooses which standard cells should be used to implement the given logic, then the placement step places the cells on a grid, then the routing step connects the standard cells with metal connections for power and signals. At Libresilicon we believe that having many more standard cells will make the overall designs more efficient because the synthesis engine can choose from more cells, therefore we are automating the generation of whole standard cell libraries.
......@@ -58,14 +51,11 @@ The initial project was the manually designed Pearl River for 1um process:
Pearl River was actually produced in the lab of HKUST in 2018 (Hong Kong University of Science and Technology) and transistors were tested successfully:
![pageimg](img/presentation/PearlRiver2.png)
![pageimg](img/presentation/PearlRiver3.png)
![pageimg](img/presentation/PearlRiver4.png)
![pageimg](img/presentation/PearlRiver5.png)
[DIVTable]
![pageimg2](img/presentation/PearlRiver2.png)
![pageimg2](img/presentation/PearlRiver3.png)
![pageimg2](img/presentation/PearlRiver4.png)
![pageimg2](img/presentation/PearlRiver5.png)
In 2023 we developed the automated successor, called DanubeRiver and taped it out successfully in cooperation with Google on GobalFoundries GF180.
......@@ -86,3 +76,16 @@ This is a fully open source, fully documented (process specifications, DRC rules
The tests had started at HKUST, but were interrupted and haven’t been completed yet.
Several universities have adopted the process documentation in their lectures to teach CMOS manufacturing, e.g. JKU Linz (Austria).
The long term goal is to find alternative chemical recipes, which allow for private hobbyists to make their own chips without having to use very dangerous gasses like Silane, here is a not yet reliably verified alternative recipe for depositing Polysilicon for example: [Eco friendly Polysilicon deposition_(CVD)](https://wiki.libresilicon.com/index.php?title=Eco_friendly_Polysilicon_deposition_(CVD))
[DIVTable]
[![pdfimg](img/LSA-pdf.svg)<br/>_Process steps (low tech)_](files/process/v1/process_lowtech_steps.pdf)
[![pdfimg](img/LSA-pdf.svg)<br/>_Process design_](files/process/v1/process_design.pdf)
[![pdfimg](img/LSA-pdf.svg)<br/>_Design rules_](files/process/v1/process_design_rules.pdf)
[![pdfimg](img/LSA-pdf.svg)<br/>_Process steps (high tech)_](files/process/v1/process_hightech_steps.pdf)
[![pdfimg](img/LSA-pdf.svg)<br/>_Process testing guide_](files/process/v1/process_testing.pdf)
[![pdfimg](img/LSA-pdf.svg)<br/>_HKUST implementation_](files/process/v1/HKUST_steps_dry.pdf)
## Our roadmap
The roadmap itself can be found here through the [Roadmap Wiki Link](https://wiki.libresilicon.com/index.php?title=Roadmap#Our_roadmap)
......@@ -325,65 +325,6 @@
</div>
</section>
<section id="theprocess">
<div class="container">
<div class="row">
<div class="col-xs-12 text-center">
<h2 class="section-heading">The process</h2>
</div>
</div>
<div class="row text-center">
<div class="col-xs-4 text-center">
<a rel="noreferrer" href="files/process/v1/process_lowtech_steps.pdf" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u>Process steps (low tech)</u></p>
</a>
</div>
<div class="col-xs-4 text-center">
<a rel="noreferrer" href="files/process/v1/process_design.pdf" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u>Process design</u></p>
</a>
</div>
<div class="col-xs-4 text-center">
<a rel="noreferrer" href="files/process/v1/process_design_rules.pdf" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u>Design rules</u></p>
</a>
</div>
</div>
<div class="row text-center">
<div class="col-xs-4 text-center">
<a rel="noreferrer" href="files/process/v1/process_hightech_steps.pdf" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u>Process steps (high tech)</u></p>
</a>
</div>
<div class="col-xs-4 text-center">
<a rel="noreferrer" href="files/process/v1/process_testing.pdf" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u>Process testing guide</u></p>
</a>
</div>
<div class="col-xs-4 text-center">
<a rel="noreferrer" href="files/process/v1/HKUST_steps_dry.pdf" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u>HKUST implementation</u></p>
</a>
</div>
</div>
<!--<div class="row text-center">
<div class="col-xs-4 text-center">
<a href="" target="_blank">
<img width="120px" style="margin-top: 20px;" src="img/LSA-pdf.svg">
<p><u></u></p>
</a>
</div>-->
</div>
</section>
<!--<img width="120px" style="margin-top: 20px;" src="img/LSA-whitepaper_{{lang}}.svg">-->
<section id="contact">
<div class="container">
<div class="row">
......
......@@ -7,9 +7,34 @@ from jinja2_markdown import MarkdownExtension
import json
import codecs
import markdown
from xml.etree.ElementTree import Element
PATH = os.path.dirname(os.path.abspath(__file__))
class DIVTableProcessor(markdown.blockprocessors.BlockProcessor):
def __init__(self, parser):
self.border = False
def test(self, parent, block):
is_divtable = block.startswith('[DIVTable]')
return is_divtable
def run(self, parent, blocks):
block = blocks.pop(0)
container_div = Element("div")
container_div.attrib = {'class':'container'}
for sb in block.split('\n')[1:]:
el = Element("div")
el.attrib = {'class':'col-xs-4 text-center'}
el.text = markdown.markdown(sb)
container_div.append(el)
parent.append(container_div)
class DIVTable(markdown.extensions.Extension):
def __init__(self, **kwargs):
super(DIVTable, self).__init__(**kwargs)
def extendMarkdown(self, md):
md.parser.blockprocessors.register(DIVTableProcessor(md.parser), 'DIVTable', 75)
def get_json_content(name):
filename="jsons/"+name+".json"
try:
......@@ -21,9 +46,13 @@ def get_json_content(name):
else:
return json_content
def custom_function(a):
return a.replace('o', 'ay')
def render_template(jinja_env, name, content):
template_filename=name+".tpl"
return jinja_env.get_template(template_filename).render(content)
template = jinja_env.get_template(template_filename)
return template.render(content)
def get_md_content(pname, fname):
mdroot = os.path.join(PATH, 'markdowns', pname)
......@@ -31,12 +60,15 @@ def get_md_content(pname, fname):
mdfile = os.path.join(mdroot, fname)
try:
with open(mdfile, 'r') as f:
tempMd=f.read()
tempMd = f.read()
f.close()
except:
return {}
else:
return markdown.markdown(tempMd)
md = markdown.Markdown(extensions=[DIVTable()])
ret = md.convert(tempMd)
md.reset()
return ret
def get_news_content():
news_dict = get_json_content("news")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment