2019-01-09 03:54:20 +01:00
|
|
|
from table_gen import *
|
2018-10-18 04:27:09 +02:00
|
|
|
import os
|
2018-11-14 02:29:43 +01:00
|
|
|
import csv
|
2018-12-06 19:13:28 +01:00
|
|
|
import base64
|
2018-10-18 04:27:09 +02:00
|
|
|
from globals import OPTS
|
2018-10-12 01:03:05 +02:00
|
|
|
|
|
|
|
|
class datasheet():
|
2018-10-31 05:37:30 +01:00
|
|
|
"""
|
|
|
|
|
Defines the layout,but not the data, of the html datasheet
|
|
|
|
|
"""
|
2018-10-12 01:03:05 +02:00
|
|
|
def __init__(self,identifier):
|
|
|
|
|
self.name = identifier
|
|
|
|
|
self.html = ""
|
2018-10-18 04:27:09 +02:00
|
|
|
|
2018-10-12 01:03:05 +02:00
|
|
|
|
|
|
|
|
def generate_html(self):
|
2018-10-31 05:37:30 +01:00
|
|
|
"""
|
|
|
|
|
Generates html tables using flask-table
|
|
|
|
|
"""
|
2018-10-20 23:13:18 +02:00
|
|
|
with open(os.path.abspath(os.environ.get("OPENRAM_HOME")) + '/datasheet/assets/datasheet.css', 'r') as datasheet_css:
|
2018-10-31 05:37:30 +01:00
|
|
|
#css styling is kept in a seperate file
|
2018-10-20 23:13:18 +02:00
|
|
|
self.html += datasheet_css.read()
|
2018-10-31 20:29:13 +01:00
|
|
|
|
2018-11-14 02:29:43 +01:00
|
|
|
|
2019-01-08 02:08:47 +01:00
|
|
|
# with open(OPTS.openram_temp + "/datasheet.info") as info:
|
2018-11-14 02:29:43 +01:00
|
|
|
self.html += '<!--'
|
2019-01-08 02:08:47 +01:00
|
|
|
# for row in info:
|
|
|
|
|
# self.html += row
|
|
|
|
|
for item in self.description:
|
|
|
|
|
self.html += item + ','
|
2019-01-08 03:17:38 +01:00
|
|
|
self.html += 'EOL'
|
2018-11-14 02:29:43 +01:00
|
|
|
self.html +='-->'
|
2018-12-06 19:13:28 +01:00
|
|
|
|
|
|
|
|
vlsi_logo = 0
|
|
|
|
|
with open(os.path.abspath(os.environ.get("OPENRAM_HOME")) + '/datasheet/assets/vlsi_logo.png' , "rb") as image_file:
|
|
|
|
|
vlsi_logo = base64.b64encode(image_file.read())
|
2018-10-18 04:27:09 +02:00
|
|
|
|
2018-12-06 19:13:28 +01:00
|
|
|
openram_logo = 0
|
|
|
|
|
with open(os.path.abspath(os.environ.get("OPENRAM_HOME")) + '/datasheet/assets/openram_logo_placeholder.png' , "rb") as image_file:
|
|
|
|
|
openram_logo = base64.b64encode(image_file.read())
|
|
|
|
|
|
|
|
|
|
|
2019-01-09 21:32:17 +01:00
|
|
|
self.html += '<a href="https://vlsida.soe.ucsc.edu/"><img src="data:image/png;base64,{0}" alt="VLSIDA"></a>'.format(str(vlsi_logo)[2:-1])
|
2018-11-11 18:27:07 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.html +='<p style="font-size: 18px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">'+ self.name + '.html' + '</p>'
|
2019-01-02 19:30:03 +01:00
|
|
|
self.html +='<p style="font-size: 18px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">Compiled at: '+ self.time + '</p>'
|
2019-01-09 05:04:30 +01:00
|
|
|
self.html +='<p style="font-size: 18px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">'+ 'DRC errors: ' + str(self.DRC) + '</p>'
|
|
|
|
|
self.html +='<p style="font-size: 18px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">'+ 'LVS errors: ' + str(self.LVS) + '</p>'
|
2018-12-03 19:53:50 +01:00
|
|
|
self.html += '<p style="font-size: 18px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">'+ 'Git commit id: ' + str(self.git_id) + '</p>'
|
2018-11-11 18:27:07 +01:00
|
|
|
|
2019-01-09 15:15:22 +01:00
|
|
|
self.html +='<p style="font-size: 26px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">Ports and Configuration</p>'
|
2019-01-09 04:50:47 +01:00
|
|
|
# self.html += in_out(self.io,table_id='data').__html__().replace('<','<').replace('"','"').replace('>',">")
|
2019-01-09 03:54:20 +01:00
|
|
|
self.html += self.io_table.to_html()
|
2019-01-08 04:43:57 +01:00
|
|
|
|
2018-11-11 18:27:07 +01:00
|
|
|
self.html +='<p style="font-size: 26px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">Operating Conditions</p>'
|
2019-01-09 04:50:47 +01:00
|
|
|
# self.html += operating_conditions(self.operating,table_id='data').__html__()
|
|
|
|
|
self.html += self.operating_table.to_html()
|
2018-10-18 04:27:09 +02:00
|
|
|
|
2018-11-11 18:27:07 +01:00
|
|
|
self.html += '<p style="font-size: 26px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">Timing and Current Data</p>'
|
2019-01-09 04:50:47 +01:00
|
|
|
# self.html += timing_and_current_data(self.timing,table_id='data').__html__()
|
|
|
|
|
self.html += self.timing_table.to_html()
|
2018-10-18 04:27:09 +02:00
|
|
|
|
2018-11-11 18:27:07 +01:00
|
|
|
self.html += '<p style="font-size: 26px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">Characterization Corners</p>'
|
2019-01-09 04:50:47 +01:00
|
|
|
# self.html += characterization_corners(self.corners,table_id='data').__html__()
|
|
|
|
|
self.html += self.corners_table.to_html()
|
2018-10-18 04:27:09 +02:00
|
|
|
|
2018-11-11 18:27:07 +01:00
|
|
|
self.html +='<p style="font-size: 26px;font-family: Trebuchet MS, Arial, Helvetica, sans-serif;">Deliverables</p>'
|
2019-01-09 04:50:47 +01:00
|
|
|
# self.html += deliverables(self.dlv,table_id='data').__html__().replace('<','<').replace('"','"').replace('>',">")
|
|
|
|
|
self.html += self.dlv_table.to_html()
|
2018-10-12 01:03:05 +02:00
|
|
|
|
2018-10-18 04:27:09 +02:00
|
|
|
|
2018-11-11 18:27:07 +01:00
|
|
|
|