コード例 #1
0
ファイル: netlist_utils.c プロジェクト: haojunliu/OpenFPGA
/*---------------------------------------------------------------------------------------------
 * (function: make_output_pins_for_existing_node)
 * 	Looks at a node and extracts the output pins into a signal list so they can be accessed
 * 	in this form
 *-------------------------------------------------------------------------------------------*/
signal_list_t *make_output_pins_for_existing_node(nnode_t* node, int width)
{
	signal_list_t *return_list = init_signal_list();
	int i; 

	oassert(node->num_output_pins == width);

	for (i = 0; i < width; i++)
	{
		npin_t *new_pin1;
		npin_t *new_pin2;
		nnet_t *new_net;
		new_pin1 = allocate_npin();
		new_pin2 = allocate_npin();
		new_net = allocate_nnet();
		new_net->name = node->name;
		/* hook the output pin into the node */
		add_output_pin_to_node(node, new_pin1, i);
		/* hook up new pin 1 into the new net */
		add_driver_pin_to_net(new_net, new_pin1);
		/* hook up the new pin 2 to this new net */
		add_fanout_pin_to_net(new_net, new_pin2);
		
		/* add the new_pin2 to the list of pins */
		add_pin_to_signal_list(return_list, new_pin2);
	}

	return return_list;
}
コード例 #2
0
ファイル: netlist_utils.c プロジェクト: haojunliu/OpenFPGA
signal_list_t *copy_output_signals(signal_list_t *signalsvar)
{
	signal_list_t *duplicate_signals = init_signal_list();
	int i;
	for (i = 0; i < signalsvar->count; i++)
	{
		npin_t *pin = signalsvar->pins[i];
		add_pin_to_signal_list(duplicate_signals, copy_output_npin(pin));
	}
	return duplicate_signals;
}
コード例 #3
0
ファイル: netlist_utils.c プロジェクト: amirhakh/odin-ii
signal_list_t *copy_input_signals(signal_list_t *signals)
{
	signal_list_t *duplicate_signals = init_signal_list();
	int i;
	for (i = 0; i < signals->count; i++)
	{
		npin_t *pin = signals->pins[i];
		pin = copy_input_npin(pin);
		add_pin_to_signal_list(duplicate_signals, pin);
	}
	return duplicate_signals;
}
コード例 #4
0
ファイル: netlist_utils.c プロジェクト: haojunliu/OpenFPGA
/*---------------------------------------------------------------------------------------------
 * (function: combine_lists_without_freeing_originals)
 *-------------------------------------------------------------------------------------------*/
signal_list_t *combine_lists_without_freeing_originals(signal_list_t **signal_lists, int num_signal_lists)
{
	signal_list_t *return_list = init_signal_list();

	int i;
	for (i = 0; i < num_signal_lists; i++)
	{
		int j;
		for (j = 0; j < signal_lists[i]->count; j++)
			add_pin_to_signal_list(return_list, signal_lists[i]->pins[j]);
	}

	return return_list;
}
コード例 #5
0
ファイル: netlist_utils.c プロジェクト: haojunliu/OpenFPGA
/*---------------------------------------------------------------------------------------------
 * (function: combine_lists)
 *-------------------------------------------------------------------------------------------*/
signal_list_t *combine_lists(signal_list_t **signal_lists, int num_signal_lists)
{
	int i;
	for (i = 1; i < num_signal_lists; i++)
	{
		int j;
		for (j = 0; j < signal_lists[i]->count; j++)
			add_pin_to_signal_list(signal_lists[0], signal_lists[i]->pins[j]);

		free_signal_list(signal_lists[i]);
	}

	return signal_lists[0];
}