blob: 0f178d7b19efe138ac82f896f87bce8278068ae0 [file] [log] [blame]
#ifndef NETLIST_FWD_H
#define NETLIST_FWD_H
#include "vtr_strong_id.h"
/*
* Ids
* ---
* The Netlist uses unique IDs passed in by derived classes to identify any component of the netlist.
* To avoid type-conversion errors (e.g. passing a PinId where a NetId was expected),
* we use vtr::StrongId's to disallow such conversions. See vtr_strong_id.h for details.
*/
template<typename BlockId, typename PortId, typename PinId, typename NetId>
class Netlist;
//A signal index in a port
typedef unsigned BitIndex;
//The type of a port in the Netlist
enum class PortType : char {
INPUT, //The port is a data-input
OUTPUT, //The port is an output (usually data, but potentially a clock)
CLOCK //The port is an input clock
};
enum class PinType : char {
DRIVER, //The pin drives a net
SINK, //The pin is a net sink
OPEN //The pin is an open connection (undecided)
};
#endif