Add support for NAND gates. (Chris H)
This commit is contained in:
parent
d16dd26660
commit
f600e774d5
|
|
@ -25,7 +25,7 @@
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: d-lpm.c,v 1.1.2.2 2005/08/21 14:39:33 steve Exp $"
|
#ident "$Id: d-lpm.c,v 1.1.2.3 2007/06/06 15:46:22 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -230,6 +230,35 @@ static edif_cell_t lpm_cell_nor(unsigned siz)
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static edif_cell_t lpm_cell_nand(unsigned siz)
|
||||||
|
{
|
||||||
|
unsigned idx;
|
||||||
|
edif_cell_t cell;
|
||||||
|
char name[32];
|
||||||
|
|
||||||
|
sprintf(name, "nand%u", siz);
|
||||||
|
|
||||||
|
cell = edif_xlibrary_findcell(xlib, name);
|
||||||
|
if (cell != 0)
|
||||||
|
return cell;
|
||||||
|
|
||||||
|
cell = edif_xcell_create(xlib, strdup(name), siz+1);
|
||||||
|
|
||||||
|
edif_cell_portconfig(cell, 0, "Result0", IVL_SIP_OUTPUT);
|
||||||
|
edif_cell_port_pstring(cell, 0, "LPM_Polarity", "INVERT");
|
||||||
|
|
||||||
|
for (idx = 0 ; idx < siz ; idx += 1) {
|
||||||
|
sprintf(name, "Data%ux0", idx);
|
||||||
|
edif_cell_portconfig(cell, idx+1, strdup(name), IVL_SIP_INPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
edif_cell_pstring(cell, "LPM_TYPE", "LPM_AND");
|
||||||
|
edif_cell_pinteger(cell, "LPM_Width", 1);
|
||||||
|
edif_cell_pinteger(cell, "LPM_Size", siz);
|
||||||
|
|
||||||
|
return cell;
|
||||||
|
}
|
||||||
|
|
||||||
static void lpm_show_header(ivl_design_t des)
|
static void lpm_show_header(ivl_design_t des)
|
||||||
{
|
{
|
||||||
unsigned idx;
|
unsigned idx;
|
||||||
|
|
@ -401,6 +430,11 @@ static void lpm_logic(ivl_net_logic_t net)
|
||||||
hookup_logic_gate( net, cell);
|
hookup_logic_gate( net, cell);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IVL_LO_NAND:
|
||||||
|
cell = lpm_cell_nand(ivl_logic_pins(net)-1);
|
||||||
|
hookup_logic_gate( net, cell);
|
||||||
|
break;
|
||||||
|
|
||||||
case IVL_LO_XOR:
|
case IVL_LO_XOR:
|
||||||
cell = lpm_cell_xor(ivl_logic_pins(net)-1);
|
cell = lpm_cell_xor(ivl_logic_pins(net)-1);
|
||||||
hookup_logic_gate( net, cell);
|
hookup_logic_gate( net, cell);
|
||||||
|
|
@ -969,6 +1003,9 @@ const struct device_s d_lpm_edif = {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: d-lpm.c,v $
|
* $Log: d-lpm.c,v $
|
||||||
|
* Revision 1.1.2.3 2007/06/06 15:46:22 steve
|
||||||
|
* Add support for NAND gates. (Chris H)
|
||||||
|
*
|
||||||
* Revision 1.1.2.2 2005/08/21 14:39:33 steve
|
* Revision 1.1.2.2 2005/08/21 14:39:33 steve
|
||||||
* Generate LPM for the CMP_EQ device.
|
* Generate LPM for the CMP_EQ device.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue