Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ skip = ./build,
*.pdf,
*.svg,
*.log,
*.vqm,
*.blif,
# External projects that do not belong to us.
./libs/EXTERNAL,
./parmys,
Expand All @@ -16,7 +18,6 @@ skip = ./build,
./verilog_preprocessor,
# WIP spelling cleanups.
./vtr_flow,
./utils/vqm2blif,
# Temporary as we wait for some PRs to merge.
*_graph_uxsdcxx_capnp.h,
./vpr/src/route/rr_graph_generation/rr_graph.cpp,
Expand All @@ -37,10 +38,12 @@ ignore-words-list = subtile,
FPT,
Synopsys,
inout,
inouts,
INOUT,
Dout,
dout,
DATIN,
ACCout,
ShowIn,
# Special case: pres fac / pres cost for example.
Pres,
Expand Down
8 changes: 4 additions & 4 deletions utils/vqm2blif/README.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-------------------------------------
VQM to BLIF Convertor
VQM to BLIF Converter
-------------------------------------

Created By: S. Whitty
Expand Down Expand Up @@ -238,7 +238,7 @@ Architecture file containing the constinuent primitives of the circuit [e.g. ../

-multiclock_primitives
By default the tool will attempt to identify netlist primitives with multiple clocks, and then
drop the extra clocks from the primtive. This is a work-around for VPR, since VPR currently
drop the extra clocks from the primitive. This is a work-around for VPR, since VPR currently
does not support multiple clocks per primitive.

If this option is provided, the tool will keep (i.e. not drop) extra clocks from netlist primitives.
Expand All @@ -256,7 +256,7 @@ Architecture file containing the constinuent primitives of the circuit [e.g. ../
VII. VQM GENERATION
------------------------
NOTE: If using VQM2BLIF as part of Titan, see scripts/titan_flow.py and scripts/q2_flow.tcl as
they automate this process. This section is maintained for referrence.
they automate this process. This section is maintained for reference.

This method uses a Linux Shell environment to generate a VQM file using Quartus II. Other methods,
such as using a Windows environment or the Quartus II GUI, are not covered here.
Expand Down Expand Up @@ -319,7 +319,7 @@ IX. LUT RECOGNITION
BLIF netlist has low-level WYSIWYG blackboxes that do not have any configurability; their functionality
is predetermined and static and only their connectivity can be varied. A VQM primitive, on the other hand,
has associated parameter information that defines lower-level functionality than that which is explicitly
described. Thus, this convertor must bridge the gap between these two levels. For most blocks, (e.g. RAMs,
described. Thus, this converter must bridge the gap between these two levels. For most blocks, (e.g. RAMs,
DSPs, etc.) this involves approximating the configuration by appending a code to the name of the block
to essentially split the single initial type of block into multiple similar but differently-functioning
ones.
Expand Down
12 changes: 6 additions & 6 deletions utils/vqm2blif/src/base/cleanup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ void remove_one_lut_nodes ( busvec* buses, std::unordered_map<std::string, int>
- Srivatsan Srinivasan, September 2021:
- removed the function parameters "original_num_nodes" and "nodes". These values can be from the "module" parameter and are now assigned internally within this function.
- Srivatsan Srinivasan, August 2021:
- Moved the incrementing of the "oneluts_elim" variable to this fuction from the "remove_node" function. The purpose of this change was to localise any vairable attached to removing one lut nodes within this function. Additionally, now the "remove_node" function is generalized and is not limited to be only used by "remove_one_lut_nodes".
- Moved the incrementing of the "oneluts_elim" variable to this function from the "remove_node" function. The purpose of this change was to localise any variable attached to removing one lut nodes within this function. Additionally, now the "remove_node" function is generalized and is not limited to be only used by "remove_one_lut_nodes".
*/
oneluts_elim = 0;

Expand Down Expand Up @@ -639,7 +639,7 @@ void verify_netlist ( t_node** nodes, int num_nodes, busvec* buses, std::unorder

cout << "\t>> Verifying netlist...\n" ;

//Step 0: Construct child_count "matrix" corresponding to the net indeces.
//Step 0: Construct child_count "matrix" corresponding to the net indices.
// The children of each net will be counted as the netlist is verified,
// then compared against the number of children stored in the net.
vector < vector <int> > child_count;
Expand All @@ -663,7 +663,7 @@ void verify_netlist ( t_node** nodes, int num_nodes, busvec* buses, std::unorder
for (int j = 0; (unsigned int)j < temp_bus->size(); j++){
temp_net = &(temp_bus->at(j));

VTR_ASSERT((temp_net->bus_index == i)&&(temp_net->wire_index == j)); //indeces must line up
VTR_ASSERT((temp_net->bus_index == i)&&(temp_net->wire_index == j)); //indices must line up
VTR_ASSERT(ref_pin == temp_net->pin); //all nets in a common bus share a pin

if (temp_net->driver == CONST){
Expand Down Expand Up @@ -726,7 +726,7 @@ void verify_netlist ( t_node** nodes, int num_nodes, busvec* buses, std::unorder
VTR_ASSERT(temp_bus->size() > 0);
for (int j = 0; (unsigned int)j < temp_bus->size(); j++){
temp_net = &(temp_bus->at(j));
VTR_ASSERT((temp_net->bus_index == i)&&(temp_net->wire_index == j)); //indeces must line up
VTR_ASSERT((temp_net->bus_index == i)&&(temp_net->wire_index == j)); //indices must line up
VTR_ASSERT(child_count[i][j] == temp_net->num_children);
}
}
Expand Down Expand Up @@ -855,7 +855,7 @@ void reorganize_module_node_list(t_module* module)

Please refer to the example below:

Inital Node array:
Initial Node array:
------ ------ ------ ------
|LUT 1| --> |LUT 2| --> --> |LUT 3| --> |LUT 4|
------ ------ ------ ------
Expand All @@ -871,7 +871,7 @@ void reorganize_module_node_list(t_module* module)
Change Log:
- Srivatsan Srinivasan, August 2021:
- created this function to reorganize node arrays with gaps inside of them.
- Initially the feature provided by this function was embedded indide the "remove_one_lut_nodes" function. By creating a seperate function, we are now not restricted to only removing one-lut nodes.
- Initially the feature provided by this function was embedded inside the "remove_one_lut_nodes" function. By creating a separate function, we are now not restricted to only removing one-lut nodes.
- Now we can remove any types of nodes and then run this function to reorganize the node array.
*/
// assign module related parameters
Expand Down
2 changes: 1 addition & 1 deletion utils/vqm2blif/src/base/cleanup.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void remove_node ( t_node* node, t_node** nodes, int original_num_nodes );
* this function fills in those gaps so that the array is continuous.
*
* Parameters:
* module - the module that contains a node list with elemets within it deleted
* module - the module that contains a node list with elements within it deleted
*
*/
void reorganize_module_node_list(t_module* module);
Expand Down
Loading