python
This commit is contained in:
parent
61e6ceeade
commit
3871bf7829
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import re\n",
|
||||
"import pandas as pd\n",
|
||||
"import numpy as np\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"with open('/homes/hyu3/Documents/12024/525/ee477-designs-module0/clk_gen/build/sim-syn-rundir/run.log', 'r') as f:\n",
|
||||
" text = f.read()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"['1996' ':']\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"splited = text.split('ps')\n",
|
||||
"num = []\n",
|
||||
"for element in splited:\n",
|
||||
" num.append(element.split(')')[-1])\n",
|
||||
"num1 = []\n",
|
||||
"for element in num:\n",
|
||||
" num1.append(element.split(' ')[1])\n",
|
||||
"num1 = num1[1:-1]\n",
|
||||
"print(np.array(num1))\n",
|
||||
"# # Create an array with sample data\n",
|
||||
"# data = np.array(num1).reshape(-1, 3)\n",
|
||||
"\n",
|
||||
"# new = data[:,0:2]\n",
|
||||
"# # Convert the array to a DataFrame\n",
|
||||
"# df = pd.DataFrame(data, columns=['pos', 'neg', 'Age'])\n",
|
||||
"\n",
|
||||
"# # Write the DataFrame to an Excel file\n",
|
||||
"# df.to_excel('result.xlsx', index=False)\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "NameError",
|
||||
"evalue": "name 'new' is not defined",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[0;32m/tmp/ipykernel_32355/4269454735.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0msum\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mduty\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0melement\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnew\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0melement\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0msum\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;31mNameError\u001b[0m: name 'new' is not defined"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"sum = []\n",
|
||||
"duty = []\n",
|
||||
"for element in new:\n",
|
||||
" result = sum(element)\n",
|
||||
" sum.append(result)\n",
|
||||
" duty.append(element[0]/result)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "base",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.9.7"
|
||||
},
|
||||
"vscode": {
|
||||
"interpreter": {
|
||||
"hash": "697073d1a6d86fc2b43096c19ba8b1d0f2263c5609f8b095efe5b6511829db6d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
import re
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
|
||||
|
||||
with open('/homes/hyu3/Documents/12024/525/ee477-designs-module0/clk_gen/build/sim-syn-rundir/run.log', 'r') as f:
|
||||
text = f.read()
|
||||
|
||||
splited = text.split('ps')
|
||||
num = []
|
||||
for element in splited:
|
||||
num.append(element.split(')')[-1])
|
||||
num1 = []
|
||||
for element in num:
|
||||
num1.append(element.split(' ')[1])
|
||||
num1 = num1[1:-2]
|
||||
print(num1)
|
||||
# Create an array with sample data
|
||||
data = np.array(num1).reshape(-1, 3)
|
||||
|
||||
# Convert the array to a DataFrame
|
||||
df = pd.DataFrame(data, columns=['pos', 'neg', 'Age'])
|
||||
|
||||
# Write the DataFrame to an Excel file
|
||||
df.to_excel('data.xlsx', index=False)
|
||||
|
|
@ -0,0 +1,278 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
|
||||
#
|
||||
# This file is part of paramiko.
|
||||
#
|
||||
# Paramiko is free software; you can redistribute it and/or modify it under the
|
||||
# terms of the GNU Lesser General Public License as published by the Free
|
||||
# Software Foundation; either version 2.1 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# Paramiko is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
"""
|
||||
Sample script showing how to do local port forwarding over paramiko.
|
||||
|
||||
This script connects to the requested SSH server and sets up local port
|
||||
forwarding (the openssh -L option) from a local port through a tunneled
|
||||
connection to a destination reachable from the SSH server machine.
|
||||
"""
|
||||
|
||||
import getpass
|
||||
import os
|
||||
import socket
|
||||
import select
|
||||
import json
|
||||
|
||||
try:
|
||||
import SocketServer
|
||||
except ImportError:
|
||||
import socketserver as SocketServer
|
||||
|
||||
import sys
|
||||
from optparse import OptionParser
|
||||
|
||||
import paramiko
|
||||
|
||||
|
||||
SERVER = "linuxsrv01.ece.uw.edu" # Modify this line for different server
|
||||
SSH_PORT = 22
|
||||
DEFAULT_PORT = 5901
|
||||
|
||||
g_verbose = True
|
||||
|
||||
|
||||
class ForwardServer(SocketServer.ThreadingTCPServer):
|
||||
daemon_threads = True
|
||||
allow_reuse_address = True
|
||||
|
||||
|
||||
class Handler(SocketServer.BaseRequestHandler):
|
||||
def handle(self):
|
||||
try:
|
||||
chan = self.ssh_transport.open_channel(
|
||||
"direct-tcpip",
|
||||
(self.chain_host, self.chain_port),
|
||||
self.request.getpeername(),
|
||||
)
|
||||
except (ConnectionResetError):
|
||||
print("ConnectionResetError")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
verbose(
|
||||
"Incoming request to %s:%d failed: %s"
|
||||
% (self.chain_host, self.chain_port, repr(e))
|
||||
)
|
||||
return
|
||||
if chan is None:
|
||||
verbose(
|
||||
"Incoming request to %s:%d was rejected by the SSH server."
|
||||
% (self.chain_host, self.chain_port)
|
||||
)
|
||||
return
|
||||
|
||||
verbose(
|
||||
"Connected! Tunnel open %r -> %r -> %r"
|
||||
% (
|
||||
self.request.getpeername(),
|
||||
chan.getpeername(),
|
||||
(self.chain_host, self.chain_port),
|
||||
)
|
||||
)
|
||||
while True:
|
||||
r, w, x = select.select([self.request, chan], [], [])
|
||||
if self.request in r:
|
||||
data = self.request.recv(1024)
|
||||
if len(data) == 0:
|
||||
break
|
||||
chan.send(data)
|
||||
if chan in r:
|
||||
data = chan.recv(1024)
|
||||
if len(data) == 0:
|
||||
break
|
||||
self.request.send(data)
|
||||
|
||||
peername = self.request.getpeername()
|
||||
chan.close()
|
||||
self.request.close()
|
||||
verbose("Tunnel closed from %r" % (peername,))
|
||||
|
||||
|
||||
def forward_tunnel(local_host, local_port, remote_host, remote_port, transport):
|
||||
# this is a little convoluted, but lets me configure things for the Handler
|
||||
# object. (SocketServer doesn't give Handlers any way to access the outer
|
||||
# server normally.)
|
||||
class SubHander(Handler):
|
||||
chain_host = remote_host
|
||||
chain_port = remote_port
|
||||
ssh_transport = transport
|
||||
|
||||
ForwardServer((local_host, local_port), SubHander).serve_forever()
|
||||
|
||||
|
||||
def verbose(s):
|
||||
if g_verbose:
|
||||
print(s)
|
||||
|
||||
|
||||
HELP = """\
|
||||
Set up a forward tunnel across an SSH server, using paramiko. A local port
|
||||
(given with -p) is forwarded across an SSH session to an address:port from
|
||||
the SSH server. This is similar to the openssh -L option.
|
||||
"""
|
||||
|
||||
|
||||
def get_host_port(spec, default_port):
|
||||
"parse 'hostname:22' into a host and port, with the port optional"
|
||||
args = (spec.split(":", 1) + [default_port])[:2]
|
||||
args[1] = int(args[1])
|
||||
return args[0], args[1]
|
||||
|
||||
def parse_options():
|
||||
global g_verbose
|
||||
|
||||
parser = OptionParser(
|
||||
usage="usage: %prog [options] <ssh-server>",
|
||||
version="%prog 1.0",
|
||||
description=HELP,
|
||||
)
|
||||
|
||||
parser.add_option(
|
||||
"-q",
|
||||
"--quiet",
|
||||
action="store_false",
|
||||
dest="verbose",
|
||||
default=True,
|
||||
help="squelch all informational output",
|
||||
)
|
||||
parser.add_option(
|
||||
"-p",
|
||||
"--local-port",
|
||||
action="store",
|
||||
type="int",
|
||||
dest="port",
|
||||
default=DEFAULT_PORT,
|
||||
help="local port to forward (default: %d)" % DEFAULT_PORT,
|
||||
)
|
||||
parser.add_option(
|
||||
"-u",
|
||||
"--user",
|
||||
action="store",
|
||||
type="string",
|
||||
dest="user",
|
||||
default=getpass.getuser(),
|
||||
help="username for SSH authentication (default: %s)"
|
||||
% getpass.getuser(),
|
||||
)
|
||||
parser.add_option(
|
||||
"-K",
|
||||
"--key",
|
||||
action="store",
|
||||
type="string",
|
||||
dest="keyfile",
|
||||
default=None,
|
||||
help="private key file to use for SSH authentication",
|
||||
)
|
||||
parser.add_option(
|
||||
"",
|
||||
"--no-key",
|
||||
action="store_false",
|
||||
dest="look_for_keys",
|
||||
default=True,
|
||||
help="don't look for or use a private key file",
|
||||
)
|
||||
parser.add_option(
|
||||
"-P",
|
||||
"--password",
|
||||
action="store",
|
||||
dest="readpass",
|
||||
default=None,
|
||||
help="read password (for key or password auth) from stdin",
|
||||
)
|
||||
parser.add_option(
|
||||
"-r",
|
||||
"--remote",
|
||||
action="store",
|
||||
type="string",
|
||||
dest="remote",
|
||||
default="localhost",
|
||||
metavar="host",
|
||||
help="remote host to forward to",
|
||||
)
|
||||
|
||||
parser.add_option(
|
||||
"-c",
|
||||
"--config",
|
||||
action="store",
|
||||
type="string",
|
||||
dest="config",
|
||||
default=None,
|
||||
help="config file to use",
|
||||
)
|
||||
|
||||
options, args = parser.parse_args()
|
||||
# If a config file is provided, load it and overwrite the options
|
||||
if options.config:
|
||||
with open(options.config, 'r') as f:
|
||||
config_options = json.load(f)
|
||||
for key, value in config_options.items():
|
||||
setattr(options, key, value)
|
||||
|
||||
if len(args) != 1:
|
||||
parser.error("Incorrect number of arguments.")
|
||||
if options.user is None:
|
||||
parser.error("User and Password required (-u).")
|
||||
|
||||
g_verbose = options.verbose
|
||||
return options, args[0]
|
||||
|
||||
|
||||
def main():
|
||||
options, server = parse_options()
|
||||
if not options.readpass:
|
||||
password = getpass.getpass("Enter SSH password: ")
|
||||
else:
|
||||
password = options.readpass
|
||||
client = paramiko.SSHClient()
|
||||
client.set_missing_host_key_policy(paramiko.WarningPolicy())
|
||||
|
||||
verbose("Connecting to ssh host ...")
|
||||
try:
|
||||
client.connect(server, username=options.user, password=password)
|
||||
client.get_transport().set_keepalive(60)
|
||||
except Exception as e:
|
||||
print("*** Failed to connect to host: %r" % (e))
|
||||
sys.exit(1)
|
||||
|
||||
ssh_stdin, ssh_stdout, ssh_stderr = client.exec_command("vncserver -list")
|
||||
|
||||
xdisplay = ssh_stdout.readlines()[-1]
|
||||
if "DISPLAY" in xdisplay:
|
||||
print("setting up vncserver")
|
||||
ssh_stdin, ssh_stdout, ssh_stderr = client.exec_command('vncserver -interface 0.0.0.0 && vncserver -list')
|
||||
xdisplay = ssh_stdout.readlines()[-1]
|
||||
|
||||
port = 5900 + int(xdisplay.split()[0][1:])
|
||||
verbose(
|
||||
"Now forwarding port " + str(port) + " ... "
|
||||
|
||||
)
|
||||
|
||||
try:
|
||||
forward_tunnel("0.0.0.0", options.port, options.remote, int(port), client.get_transport())
|
||||
except KeyboardInterrupt:
|
||||
print("C-c: Port forwarding stopped.")
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
from skywater_pdk import base, corners, liberty
|
||||
|
||||
lib = "sky130_fd_sc_hd__tt_025C_1v80"
|
||||
c = base.Cell(name=lib)
|
||||
print(corners.CornerType.parse('tt'))
|
|
@ -1 +0,0 @@
|
|||
/home/projects/ee477.2023wtr/cad/pdk/sky130A/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__tt_025C_1v80.lib
|
Loading…
Reference in New Issue