Software Used:
Cadence Virtuoso
PyCharm for writing code in python and preparing GUI
Dataset preparation:
For this application a dataset is necessary to train the regressor model that will fulfil the requirement of predicting the values based on the training data set provided to it. Therefore, a dataset of PMOS type RLI circuit (RLI[P]), NMOS type RLI circuit (RLI[N]) and CMOS based NAND gate with the features as the number of NMOS, number of PMOS, resistance value, capacitance value, width and length of PMOS and NMOS, and output as power consumption is formed with the help of Cadence Virtuoso and stored as CSV file. There are total 196 samples, out of which 128 samples are for Resistive Load Inverter and 68 samples for CMOS based NAND gate circuit. Few samples from the dataset are shown bellow.
Sample dataset of NMOS and PMOS type RLI circuit
Sample dataset of CMOS based NAND gate
Training, Testing and Model formation
Data stored in the CSV file is extracted and then this data is used to train and test the different regressor models. Almost 96% of the data collected is used for training the model and the rest 4% data is used for testing. For training random forest and extra tree regressor, the grid search method is used to get the best parameters such that the Mean Square Error(MSE) of that model is very less. After that, the model is stored so that the training process doesn't need to be performed each time.
Prepared GUI:
Mean Square Error and R^2 value:
Expected vs Predicted power consumption: