Capacitor Layout in progress
This commit is contained in:
parent
60f05e0e57
commit
b6701ec1a6
|
@ -1,10 +1,38 @@
|
||||||
|
#include "hurricane/DataBase.h"
|
||||||
|
#include "hurricane/Technology.h"
|
||||||
|
#include "hurricane/Pad.h"
|
||||||
#include "hurricane/UpdateSession.h"
|
#include "hurricane/UpdateSession.h"
|
||||||
using namespace Hurricane;
|
using namespace Hurricane;
|
||||||
|
|
||||||
#include "Capacitor.h"
|
#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):
|
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) {
|
Capacitor* Capacitor::create(Library* library, const Name& name) {
|
||||||
|
@ -18,4 +46,13 @@ Capacitor* Capacitor::create(Library* library, const Name& name) {
|
||||||
void Capacitor::_postCreate() {
|
void Capacitor::_postCreate() {
|
||||||
Inherit::_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");
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,20 @@
|
||||||
|
|
||||||
class Capacitor : public AnalogComponent {
|
class Capacitor : public AnalogComponent {
|
||||||
public:
|
public:
|
||||||
|
static const Name BottomPlateName;
|
||||||
|
static const Name TopPlateName;
|
||||||
|
|
||||||
static Capacitor* create(Library* library, const Name& name);
|
static Capacitor* create(Library* library, const Name& name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _postCreate();
|
void _postCreate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Net* _bottomPlate;
|
||||||
|
Net* _topPlate;
|
||||||
|
DbU::Unit _l;
|
||||||
|
DbU::Unit _w;
|
||||||
|
Pad *_topPlate20;
|
||||||
|
|
||||||
Capacitor(Library* library, const Name& name);
|
Capacitor(Library* library, const Name& name);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue