⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pin.c

📁 circuit calculation program
💻 C
字号:
#include <string.h>
#include "types.h"
#include "component.h"
#include "graph.h"

static int n_pins;  

pin_t *pins;
char *pin_flag;

int pins_alloc (int count)
{
	int i = n_pins;
	
	n_pins += count;
	
	if (n_pins < 0) { /* roll back when overflow */
		error( __FILE__,__LINE__,ETOO_MANYPINS);
		
		return -1;
	}
	return i;
}


int pin_map_str_str (char *string, char *id)
{
	comp_t *p = get_component (string);
	int pin_gid;
	
	if (!p ) return -2;
	pin_gid = CLASS(p)->str_to_pin_gid ?
		  CLASS(p)->str_to_pin_gid (p, id) : -1;
		  
	if (pin_gid>0) 
		pins[ pin_gid ].comp = p;
		
	return pin_gid;
}
int pin_map_str_pin (char *string, int id)
{
	comp_t *p = get_component (string);
	int pin_gid;
	
	if (!p ) return -2;
	
	id --;  /* in netlist, pin starts with 1*/
	pin_gid = CLASS(p)->pin_to_pin_gid ?
		  CLASS(p)->pin_to_pin_gid (p, id) : -1;	
		  
	if (pin_gid>=0) 
		pins[ pin_gid ].comp = p;
		
	return pin_gid;
}


int pin_init()
{
	pin_flag = (char *) malloc (n_pins);
	if (pin_flag) 
		memset (pin_flag, 0, n_pins);
	
	pins = (pin_t *) malloc (n_pins * sizeof (pin_t));
	if (pins) 
		memset (pins, 0,(n_pins * sizeof (pin_t)));
	return !!pin_flag;
}	


int dump_pins()
{
	int i;
	for (i = 0; i < n_pins; i++ ) {
		printf ("<%d> ",i);
//		assert(pins[ i ].comp);
		
		
		printf ("%s ",(pins[ i ].comp)? pins[ i ].comp->label : "<NULL>");
		printf ("%d\n",pins[ i ].node_id);
		
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -