Capacitor Layout in progress

This commit is contained in:
Stephanie Youssef 2008-07-21 14:15:10 +00:00
parent 60f05e0e57
commit b6701ec1a6
2 changed files with 46 additions and 1 deletions

View File

@ -1,10 +1,38 @@
#include "hurricane/DataBase.h"
#include "hurricane/Technology.h"
#include "hurricane/Pad.h"
#include "hurricane/UpdateSession.h"
using namespace Hurricane;
#include "Capacitor.h"
namespace {
Layer* getLayer(Technology* technology, const string& layerStr) {
Layer* layer = technology->getLayer(layerStr);
if (!layer) {
throw Error("Unknown Layer : " + layerStr);
}
return layer;
}
Pad* createPad(Technology* technology, Net* net, const string& layerName) {
static Box emptyBox(0, 0, 0, 0);
Layer* layer = getLayer(technology, layerName);
Pad* pad = Pad::create(net, layer, emptyBox);
return pad;
}
}
const Name Capacitor::BottomPlateName("BOTTOMPLATE");
const Name Capacitor::TopPlateName("TOPPLATE");
Capacitor::Capacitor(Library* library, const Name& name):
AnalogComponent(library, name)
AnalogComponent(library, name),
_bottomPlate(NULL), _topPlate(NULL),
_l(0), _w(0)
{}
Capacitor* Capacitor::create(Library* library, const Name& name) {
@ -18,4 +46,13 @@ Capacitor* Capacitor::create(Library* library, const Name& name) {
void Capacitor::_postCreate() {
Inherit::_postCreate();
DataBase* db = DataBase::getDB();
Technology* technology = db->getTechnology();
_bottomPlate = Net::create(this, BottomPlateName);
_bottomPlate->setExternal(true);
_topPlate = Net::create(this, TopPlateName);
_topPlate->setExternal(true);
_topPlate20 = createPad(technology, _topPlate, "cut6");
}

View File

@ -5,12 +5,20 @@
class Capacitor : public AnalogComponent {
public:
static const Name BottomPlateName;
static const Name TopPlateName;
static Capacitor* create(Library* library, const Name& name);
protected:
void _postCreate();
private:
Net* _bottomPlate;
Net* _topPlate;
DbU::Unit _l;
DbU::Unit _w;
Pad *_topPlate20;
Capacitor(Library* library, const Name& name);
};