Commit Graph

906 Commits

Author SHA1 Message Date
tangxifan 62fd0947f5 using a unified string to replace multi net names to save memory of bitstream database 2020-07-08 16:28:20 -06:00
tangxifan 66e5e141a1 improve fabric key loader to reduce runtime 2020-07-07 10:19:34 -06:00
tangxifan 824b56f14c fabric key can now accept instance name only; decoders are no longer part of the key 2020-07-06 16:42:33 -06:00
tangxifan 462fc0d04e add spice transistor wrapper writer 2020-07-05 14:50:29 -06:00
tangxifan b38ee0e8be add spice writer functions 2020-07-05 13:58:05 -06:00
tangxifan 81171a8f97 start transplanting FPGA-SPICE 2020-07-05 12:10:12 -06:00
tangxifan 1ad6e8292a move constants from verilog domain to common so that FPGA-SPICE can share 2020-07-05 11:39:46 -06:00
tangxifan 7c2a0a6ad2 streamline fabric verilog options 2020-07-05 11:28:14 -06:00
tangxifan 83e26adf90 add module usage types for future FPGA-SPICE development 2020-07-04 22:33:54 -06:00
tangxifan 4f8260a7ba remove obselete codes and update regression tests 2020-07-04 17:31:34 -06:00
tangxifan 033c92c365 precisely reserve memory for child blocks in bitstream manager 2020-07-03 22:47:21 -06:00
tangxifan 46f038c829 bug fix in grid config block allocation 2020-07-03 20:46:04 -06:00
tangxifan f040fc78a9 now reserve blocks in bitstream manager can accurately capture the size 2020-07-03 20:06:12 -06:00
tangxifan 8067a13346 bug fix for memory bank due to encoding bl/wl addresses in fabric bitstream 2020-07-03 15:56:20 -06:00
tangxifan 2a9377b3f4 use encoded address in storage of fabric bitstream to save memory 2020-07-03 15:12:29 -06:00
tangxifan 1f38e17111 bug fix for naming conflicts in mux local encoder and architecture decoders 2020-07-03 14:12:13 -06:00
tangxifan 70d9678578 reserve child block in bistream manager 2020-07-03 14:04:10 -06:00
tangxifan 2783fda344 use index range instead of vector for block bitstream 2020-07-03 11:42:38 -06:00
tangxifan 6ea857ae6c use fast method to inquire number of bits and blocks in bitstream databases 2020-07-03 10:55:25 -06:00
tangxifan 7ca1a5bdc1 Fabric bitstream now allocates vectors in conditions for memory efficiency 2020-07-03 10:17:03 -06:00
tangxifan 8a45e48a1c minor fix 2020-07-02 22:27:48 -06:00
tangxifan 246b4d5ac6 reserve block bits to save memory 2020-07-02 21:52:32 -06:00
tangxifan dee4be96af reserve all the input/output net storage in bitstream manager 2020-07-02 19:17:34 -06:00
tangxifan f97e3bfba6 add timer to openfpga shell 2020-07-02 18:02:33 -06:00
tangxifan 81c9fcb7c0 bug fix when optimizing the fabric bitstream data structure 2020-07-02 16:41:32 -06:00
tangxifan adee87569d enable fast bitstream building by creating a frame view of fabric 2020-07-02 16:25:36 -06:00
tangxifan 9608cefa86 remove id vector in fabric bitstream database and replace with more memory efficient implementation 2020-07-02 16:08:50 -06:00
tangxifan 9f19c36a89 use char in fabric bitstream to save memory footprint 2020-07-02 15:56:50 -06:00
tangxifan 405824081b reserve configuration blocks and bits in bitstream manager builder to be memory efficient 2020-07-02 15:28:52 -06:00
tangxifan b85af57971 optimizing fabric bitsteream memory footprint 2020-07-02 12:39:18 -06:00
tangxifan ac22ba28e4 add config protocol type information to simulation ini file 2020-07-02 12:26:59 -06:00
tangxifan 81ecfa3197 add comments to clarify how to select CB ports when connecting to SBs at the top level 2020-07-01 14:44:40 -06:00
tangxifan 0a3c746fb1 now split CB module bus ports into lower/upper parts 2020-07-01 14:37:13 -06:00
tangxifan cb2baed257 bug fix in simulation ini GPIO width 2020-07-01 13:39:12 -06:00
tangxifan b74dde919d add additional information in the simulation ini file for UVM 2020-07-01 13:07:39 -06:00
tangxifan e688ca1388 update fabric bitstream writer to support various configuration protocols 2020-07-01 11:54:28 -06:00
tangxifan 1015880d0e use easy-to-access net look up in switch block module builder 2020-06-30 18:15:41 -06:00
tangxifan 05187f8aa4 use typedef to short the module pin information 2020-06-30 18:07:22 -06:00
tangxifan 2e7684b746 adapt bus ports in connection block module builder 2020-06-30 17:50:53 -06:00
tangxifan 2ef083c49d adapt SB module builder to use bus ports 2020-06-30 16:02:40 -06:00
tangxifan f023652ac4 keep optimizing memory footprint of module manager by using net terminal storage 2020-06-30 14:18:05 -06:00
tangxifan f49cabeeda optimize memory efficiency for module net id storage 2020-06-30 11:33:06 -06:00
tangxifan 23bcad0678 use more robust net builder in inter tile connections 2020-06-30 10:49:17 -06:00
tangxifan 025d4a3599 use efficient net builder in top module connection builder 2020-06-29 23:28:26 -06:00
tangxifan e7d5736269 add profile time to top module builder for better spot on runtime/memory overhead sources 2020-06-29 23:17:03 -06:00
tangxifan 57e6c84252 add reserve net sources and sinks to module manager 2020-06-29 22:49:11 -06:00
tangxifan 66746f69da optimizing memory efficiency by reserving nets in module manager 2020-06-29 21:27:43 -06:00
tangxifan e9937954f2 optimizing the constant writing in Verilog for single bits 2020-06-29 12:29:25 -06:00
tangxifan 9d32a5b81f add alias name support for fabric key 2020-06-27 14:59:53 -06:00
tangxifan ebf5636e7b add verbose output to edge sorting for GSBs 2020-06-26 17:10:51 -06:00
tangxifan aded675633 rename files in fpga bitstream library to be consistent with conventions 2020-06-21 13:06:39 -06:00
tangxifan d526f08782 deploy bitstream reader in openfpga shell 2020-06-20 18:48:19 -06:00
tangxifan 675a59ecb8 Move fpga_bitstream to the libopenfpga library and add XML reader 2020-06-20 18:25:17 -06:00
tangxifan 5d79a3f69f critical bug fixed when annotating the routing results.
Add previous node check. This is due to that some loops between SB/CBs may exist
when routing congestion is high, which leads to same nets appear in the inputs
of a routing multiplexer. Actually one of them is driven by the other as a downstream node
Using previous node check can identify which one to pick
2020-06-17 11:17:57 -06:00
tangxifan 4f7e8020a8 minor fix on the format of arch bitstream writer 2020-06-17 00:08:28 -06:00
tangxifan b91c30191a add input and output net echo in arch bitstream database 2020-06-17 00:04:55 -06:00
tangxifan 19c0b57df6 ignore invalid nets when decoding bitstream 2020-06-16 22:26:36 -06:00
tangxifan 9d0e002532 echo path in architecture bitstream database 2020-06-16 21:29:45 -06:00
ganeshgore 559564c333 Merge remote-tracking branch 'lnis_origin/dev' into ganesh_dev 2020-06-12 17:31:14 -06:00
tangxifan a5055e9d26 add support about loading external fabric key 2020-06-12 13:03:11 -06:00
tangxifan 9dbf536306 add shuffled configurable children support for top module 2020-06-12 11:16:53 -06:00
tangxifan cf9c3b0f44 add write fabric to test cases 2020-06-12 10:50:23 -06:00
tangxifan 3499b4d3e7 add fabric key writer for top-level module 2020-06-12 10:41:34 -06:00
tangxifan 278acee216 bug fix for 'build_fabric' command 2020-06-11 23:59:24 -06:00
tangxifan 9167b288b6 add options for fabric key 2020-06-11 21:50:46 -06:00
tangxifan 8a4ec85c39 add configurable children-related methods to module manager 2020-06-11 21:44:25 -06:00
tangxifan 58807bfcb3 remove simulation settings from openfpga arch data structure 2020-06-11 19:31:16 -06:00
tangxifan 96b58dfdbb use new simulation setting command in openfpga shell 2020-06-11 19:31:15 -06:00
tangxifan 4a2f6dfae2 add read/write simulation setting commands to openfpga shell 2020-06-11 19:31:15 -06:00
tangxifan 3c10af7f2b bug fixed in memory bank configuration protocol which is due to the wrong Verilog port merging algorithm 2020-06-11 19:31:14 -06:00
tangxifan 8267dad8ef add decoder support for Z signals 2020-06-11 19:31:14 -06:00
tangxifan 5368485bd6 keep bug fixing for memory bank configuration protocol. Reduce number of BL/WLs at the top-level 2020-06-11 19:31:14 -06:00
tangxifan c85ccceac7 try bug fixing in memory bank configuration protocol 2020-06-11 19:31:14 -06:00
tangxifan 0bee70bee6 finish memory bank configuration protocol support. 2020-06-11 19:31:13 -06:00
tangxifan e14c39e14c update Verilog full testbench generation to support memory bank configuration protocol 2020-06-11 19:31:13 -06:00
tangxifan 51e1559352 add fabric bitstream support for memory bank configuration protocol 2020-06-11 19:31:13 -06:00
tangxifan 0e16ee1030 add configuration bus nets for memory bank decoders at top module 2020-06-11 19:31:13 -06:00
tangxifan fa8dfc1fbd add configuration protocol ports to top module for memory bank organization 2020-06-11 19:31:13 -06:00
tangxifan ad7422359d deploy compact constant values in Verilog codes 2020-06-11 19:31:13 -06:00
tangxifan 8ec8ac4118 bug fixed in flatten memory organization. Passed verification 2020-06-11 19:31:12 -06:00
tangxifan b9aac3cbdf updated fpga verilog testbench generation to support vanilla (standalone) configuration protocol 2020-06-11 19:31:12 -06:00
tangxifan fbe05963e0 add configuration bus builder for flatten memory organization (applicable to memory bank and standalone configuration protocol) 2020-06-11 19:31:12 -06:00
tangxifan d2d443a988 start developing memory bank and standalone configuration protocol 2020-06-11 19:31:12 -06:00
tangxifan 9e176b8d38 add fast configuration stats to log 2020-06-11 19:31:12 -06:00
tangxifan 8b3e79766c add fast configuration option to fpga_verilog to speed up full testbench simulation 2020-06-11 19:31:12 -06:00
tangxifan b5e5182f52 frame-based configuration protocol is working on k4n4 arch now. Spot bugs in iVerilog about negedge flip-flops 2020-06-11 19:31:11 -06:00
tangxifan 31c9a011dd keep bug fixing for arch decoders 2020-06-11 19:31:11 -06:00
tangxifan bdc9efb38f bug fix in top-level testbench for frame-based decoders 2020-06-11 19:31:11 -06:00
tangxifan 986956e474 bug fix for arch decoder Verilog codes. Now Modelsim compiles ok. 2020-06-11 19:31:11 -06:00
tangxifan 6a72c66eb8 bug fixed for frame-based configuration memory in top-level full testbench 2020-06-11 19:31:11 -06:00
tangxifan 8aa665b3b2 bug fix in the Verilog codes for frame decoders 2020-06-11 19:31:10 -06:00
tangxifan 8298bbff78 bug fixed in the fabric bitstream for frame-based configurable memories. 2020-06-11 19:31:10 -06:00
tangxifan bf9f62f0f7 keep bug fixing for frame-based configuration protocol. 2020-06-11 19:31:10 -06:00
tangxifan 65df309419 bug fixing for frame-based configuration protocol and rename some naming function to be generic 2020-06-11 19:31:10 -06:00
tangxifan ece651ade2 bug fixed in the configuration chian errrors 2020-06-11 19:31:10 -06:00
tangxifan cff5b5cfc1 break the configuration testbench. This commit is to spot which modification leads to the problem 2020-06-11 19:31:10 -06:00
tangxifan 85921dcc05 add fabric bitstream builder for frame-based configuration protocol 2020-06-11 19:31:10 -06:00
tangxifan 4a0e1cd908 add fabric bitstream data structure and deploy it to Verilog testbench generation 2020-06-11 19:31:10 -06:00
tangxifan 8c14cced84 start improve fabric bitstream database to support frame-based configuration protocol 2020-06-11 19:31:09 -06:00
tangxifan 5c5a044c68 add architecture decoder (for frame-based config memory) to Verilog writer 2020-06-11 19:31:09 -06:00
tangxifan c696e3d20f refine frame-based memory addition to compact the area 2020-06-11 19:31:09 -06:00
tangxifan ed2325ec9e add frame decoder build-up to top-level module 2020-06-11 19:31:09 -06:00
tangxifan 290dd1a8a6 add frame decoder builder to all the module graph builder except the top-level 2020-06-11 19:31:09 -06:00
tangxifan 8864920460 add frame-based memory module builder 2020-06-11 19:31:09 -06:00
tangxifan 3a26bb5eef add advanced check in configurable memories 2020-06-11 19:31:09 -06:00
tangxifan bba476fef4 add explicit port mapping support to Verilog testbench generator 2020-06-11 19:31:07 -06:00
tangxifan e089b0ef22 use constant string for inverted port naming 2020-06-11 19:31:07 -06:00
tangxifan 8915d10d27 add verbose output option to configure port disable timing writer 2020-06-11 19:31:07 -06:00
tangxifan 6177921d4c bug fixed in configure port disable timing. Now we disable the right ports of LUTs 2020-06-11 19:31:07 -06:00
tangxifan f52b5d5b4c use error code in read_arch command 2020-06-11 19:31:07 -06:00
tangxifan e9ceedb01b use constant openfpga context in SDC generator 2020-06-11 19:31:07 -06:00
tangxifan 067d09f954 bug fix for configure port disable_timing writer 2020-06-11 19:31:06 -06:00
tangxifan 13f591cacf add new command to disable timing for configure ports of programmable modules 2020-06-11 19:31:06 -06:00
tangxifan ae9f1fbd90 critical bug fixed in the disable MUX output 2020-06-11 19:31:06 -06:00
tangxifan 99751b84f5 bug fix in configuration chain sdc writer 2020-06-11 19:31:06 -06:00
tangxifan 02e86c565a bug fix in configuration chain SDC writer 2020-06-11 19:31:06 -06:00
tangxifan 4c0953415b add configuration chain sdc writer 2020-06-11 19:31:06 -06:00
tangxifan dad99d13a2 bug fixed in SDC timing writer for primitive pb_type 2020-06-11 19:31:06 -06:00
tangxifan 8d2360a710 simplify include_netlist.v 2020-06-11 19:31:05 -06:00
tangxifan b8a79c563d bug fix in the SDC port generation 2020-06-11 19:31:05 -06:00
tangxifan 84d24ad075 bug fix in pnr sdc grid writer for module paths in hierarchical view 2020-06-11 19:31:05 -06:00
tangxifan 99fa51cb49 bug fixed in the SDC CB hierarchy writer 2020-06-11 19:31:05 -06:00
tangxifan 10e1a4b2fe format fix in the fabric hierarchy and grid SDC hierarchy to be complaint to YAML format 2020-06-11 19:31:05 -06:00
tangxifan cc6d988872 bug fix in grid SDC generator 2020-06-11 19:31:05 -06:00
tangxifan b167c85980 fully expand grid hierarchy in SDC writer 2020-06-11 19:31:05 -06:00
tangxifan 55518f4cec minor fix in the sdc hierarchy writer for grids 2020-06-11 19:31:05 -06:00
tangxifan b57a90a6ca add SDC hierarchy writer for grids and now support flatten hierarchy in grid timing constraints 2020-06-11 19:31:05 -06:00
tangxifan 5a8c05378e add --depth option to fabric hierarchy writer 2020-06-11 19:31:04 -06:00
tangxifan d9dc7160a7 minor fix on the hierarchy writer in SDC generator 2020-06-11 19:31:04 -06:00
tangxifan 17c254a370 add missing file to follow up the previous commit 2020-06-11 19:31:04 -06:00
tangxifan c651df6421 add hierarchy writer to SDC generator 2020-06-11 19:31:04 -06:00
tangxifan 6aff33dd35 add fabric hierarchy writer 2020-06-11 19:31:04 -06:00
tangxifan 0985c720e9 remove regexp in SDC generation. 2020-06-11 19:31:04 -06:00
tangxifan 8726c618eb add time unit support on SDC generator. Now users can define time_unit thru cmd-line options 2020-06-11 19:31:03 -06:00
tangxifan 0e44cf3ea3 now SDC to disable routing multiplexer outputs can use wildcards 2020-06-11 19:31:03 -06:00
tangxifan 609115e51f now hierarchical SDC generation is applicable to CB timing constraints 2020-06-11 19:31:03 -06:00
tangxifan 7e82c23f52 now add SDC generator supports both hierarchical and flatten in writing timing constraints 2020-06-11 19:31:03 -06:00
tangxifan 7503c58fb2 small fix on SDC generator for SB which do not exist in FPGA 2020-06-11 19:31:02 -06:00
tangxifan d0793d9029 now disable_sb_output support wildcard 2020-06-11 19:31:02 -06:00
tangxifan 8695c5ee78 add options to use general-purpose wildcards in SDC generator 2020-06-11 19:31:02 -06:00
tangxifan facd87dafe use wildcard in SDC generation for multiple-instanced-blocks 2020-06-11 19:31:02 -06:00
tangxifan 1e2226e1c3 now use explicit port mapping in the verilog testbenches for reference benchmarks 2020-06-11 19:31:02 -06:00
tangxifan 69306faf22 add a new include netlist for all the fabric-related netlists 2020-06-11 19:31:01 -06:00
tangxifan 8f5a684b10 removed redundant include files in all the verilog netlists except the top one 2020-06-11 19:28:13 -06:00
tangxifan 185e574738 removed redundant include files in all the verilog netlists except the top one 2020-04-24 20:21:32 -06:00
tangxifan e811f8bb21 plug in netlist manager and now the include_netlist appears in one unique file 2020-04-23 20:42:11 -06:00
tangxifan 87b17fc25f add netlist manager data structure 2020-04-23 18:59:09 -06:00
tangxifan bf841b9a8e bug fixed in identifying wired LUT 2020-04-22 17:28:16 -06:00
tangxifan 8ac6e10727 bug fix in lut and mux module generation on supporting spypads 2020-04-22 14:41:16 -06:00
tangxifan 2e3054f79a bug fixed for SDC generation for LUTs 2020-04-21 14:34:51 -06:00
tangxifan 68b7991a46 bug fixed for sdc on memory blocks 2020-04-21 13:37:56 -06:00
tangxifan d325bede68 add fabric bitstream writer 2020-04-21 12:02:10 -06:00
tangxifan 3f1fb70d16 FPGA SDC now constrain max and min delay for primitive modules in grids 2020-04-21 11:00:28 -06:00
tangxifan c2804a4c1f bug fix for RC delay computing in SDC generation 2020-04-20 22:20:00 -06:00
tangxifan 1a8968cb37 now FPGA-SDC will constrain timing for routing tracks using the VPR Rmetal parameter in ARCH XML 2020-04-20 21:12:51 -06:00
tangxifan e10cafe0a5 Critical patch on repacking about wire LUT support.
Previously, the wire LUT identification is too naive and does not consider all the cases
2020-04-19 16:42:31 -06:00
tangxifan 2e3a811f4f critical bug fixed in repacking. This is due to depop50% local routing where the same net may be mapped to two different pins in the same pb_graph_pin. Now we restrict the pin searching. But in long term, we should sync the pb_route results to post routing results 2020-04-18 21:04:46 -06:00
tangxifan a7d900088b now generating simulation ini file will try to create directory first 2020-04-15 20:53:37 -06:00
tangxifan 72e8824a87 bug fixed on removing undriven pins (direct connection between clbs) from cb 2020-04-15 20:41:15 -06:00
tangxifan 2ffd174e6a fixed a bug in single mode FPGA; add arch to regression test; deploy full testbench verification on Travis CI 2020-04-15 15:48:33 -06:00
tangxifan 56e0d2a918 critical patch on the ccff head and tail connection in grid modules for VPR7+OpenFPGA 2020-04-13 12:58:44 -06:00
tangxifan e6c896d583 now inout must be global port and I/O port so that it will appear in the top-level module 2020-04-08 16:54:08 -06:00
tangxifan b9dab2baaf add exit codes to command execution in shell context 2020-04-08 16:18:05 -06:00
tangxifan 1fb37f4c71 improve directory creator to support same functionality as 'mkdir -p' 2020-04-08 12:55:09 -06:00
tangxifan 0b1c8ac139 bug fixed in identifying the physical interconnect for pb_graph nodes 2020-04-07 19:46:42 -06:00
tangxifan 62276f9e28 minor code format 2020-04-07 18:43:11 -06:00
tangxifan cbcd1d20d4 fixed memory leakage in pb_pin fixup 2020-04-07 16:24:04 -06:00
tangxifan 5a04da2082 fix memory leakage in openfpga title 2020-04-07 16:14:41 -06:00
tangxifan 26d1261c1f add test cases using shift registers 2020-04-07 15:09:10 -06:00
tangxifan 92a3a444f9 update VPR7 to support global I/O ports 2020-04-06 20:44:00 -06:00
tangxifan 3369d724e9 bug fixing in Verilog top-level testbench generation 2020-04-05 17:50:11 -06:00
tangxifan decc1dc4b2 debugged global gp input/output port support 2020-04-05 17:39:30 -06:00
tangxifan bcb86801fa bug fixed in gpio naming for module manager ports 2020-04-05 17:26:44 -06:00
tangxifan 5f4e7dc5d4 support gpinput and gpoutput ports in module manager and circuit library 2020-04-05 16:52:21 -06:00
tangxifan bc47b3ca94 update verilog module writer to the global spy ports 2020-04-05 16:04:13 -06:00
tangxifan 8b583b7917 debugging spy port builder in module manager 2020-04-05 16:01:25 -06:00
tangxifan 836f722f20 start supporting global output ports in module manager 2020-04-05 15:19:46 -06:00
tangxifan 63306ce3a0 add comments to explain the memory organization in the top-level module 2020-04-01 11:05:30 -06:00
tangxifan ff9cc50527 relax I/O circuit model checking to fit AIB interface. Adapt testbench generation for multiple types of I/O pads 2020-03-27 20:09:50 -06:00
tangxifan e601a648cc relax asseration to allow AIB (non-I/O) blocks on the side of FPGA fabrics 2020-03-27 19:07:34 -06:00
tangxifan 4bf0a63ae6 bug fixed for multiple io types defined in FPGA architectures 2020-03-27 16:32:15 -06:00
tangxifan 7c9c2451f2 debugging multiple io_types; bug fixed to support I/Os in more flexible location of FPGA fabric 2020-03-27 16:03:42 -06:00
tangxifan 329b0a9cf1 add options to enable SDC constraints on zero-delay paths 2020-03-25 15:55:30 -06:00
tangxifan 4a0128f240 minor fix on the SDC format 2020-03-25 14:46:31 -06:00
tangxifan c2e5d6b8e2 add options to dsiable SDC for non-clock global ports 2020-03-25 14:38:13 -06:00
tangxifan 787dc8ce83 added ASCII OpenFPGA logo in shell interface 2020-03-25 11:16:04 -06:00
tangxifan b6bdf78d95 bug fixed for heterogeneous block instances in top module 2020-03-24 17:39:26 -06:00
tangxifan 9e4e12aae9 fixed echo message in the compression rate of gsb uniquifying 2020-03-22 16:13:04 -06:00
tangxifan ff474d87de fixed critical bug in uniquifying GSBs. Now it can guarantee minimum number of unique GSBs 2020-03-22 16:11:00 -06:00
tangxifan fdf6a6bd3e use chan_node_in_edges from rr_gsb in XML writer 2020-03-22 15:48:11 -06:00
tangxifan 3958ac2494 fix bugs in flow manager on default compress routing problems 2020-03-22 15:26:15 -06:00
tangxifan fc6abc13fd add physical tile utils to identify pins that have Fc=0 2020-03-21 21:02:47 -06:00
tangxifan 7b9384f3b2 add write_gsb command to shell interface 2020-03-21 19:40:26 -06:00
tangxifan 637be076dc adding xml writer for device rr_gsb to help debugging the compress routing; current compress routing is not working 2020-03-21 18:49:20 -06:00
tangxifan 9a518e8bb6 bug fixed for tileable rr_graph builder for more 4x4 fabrics 2020-03-21 18:07:00 -06:00
tangxifan c0e8d98c6f bug fixed in tile direct builder 2020-03-21 12:43:56 -06:00
tangxifan 8f35f191eb use the formalized function in FPGA-SDC to identify direct connection 2020-03-21 11:42:00 -06:00
tangxifan 28123b8052 remove the direct connected IPIN/OPIN from RR GSB builder 2020-03-21 11:38:39 -06:00
tangxifan 682b667a3c minor bug fix for direct connection in FPGA-SDC 2020-03-20 21:44:01 -06:00
tangxifan 05ec86430a temp fix for direct connections. Should notify VPR team about this issue: delayless switch is used in direct connection but it is considered as configurable....which is actually NOT! 2020-03-20 17:56:03 -06:00
tangxifan 2c0c5a061b spot a bug in assigning rr_switch in tileable routing 2020-03-20 16:53:43 -06:00
tangxifan a46fc9f028 add debugging information for tile direct builder 2020-03-20 14:59:46 -06:00
tangxifan 808853db0b critical bug fixed for find proper pb_route traceback 2020-03-13 12:26:37 -06:00
tangxifan 81e5af464e improve lb_route to avoid routing combinational loops 2020-03-12 23:58:56 -06:00
tangxifan 773e6da308 Spot a bug in lb router where path finder fail to use low-occupancy node when expanding the tree 2020-03-12 22:53:17 -06:00
tangxifan 29450f3472 debugging multi-source lb router 2020-03-12 20:42:41 -06:00
tangxifan 8921905bec annotate multiple-source and multiple-sink nets from pb to lb router 2020-03-12 19:21:13 -06:00
tangxifan f0b22aaa11 Make lb router support multiple sources to be routed 2020-03-12 13:44:14 -06:00
tangxifan c40675ca9d minor code formatting 2020-03-12 11:55:25 -06:00
tangxifan f1e8e78410 minor code formatting 2020-03-12 11:47:42 -06:00
tangxifan 689c50dff1 label the routing status for each sink in lb_router 2020-03-12 11:36:31 -06:00
tangxifan a1f19e776e Add comments to lb router and extract a private function for routing a single net 2020-03-12 11:05:38 -06:00
tangxifan cd50155e29 rename variables in lb router 2020-03-12 10:24:38 -06:00
tangxifan 17a1c61b9d minor change in variable names in lb_router 2020-03-11 21:10:16 -06:00
tangxifan 8e796f152f add comments to lb_router about how-to-use 2020-03-11 21:05:06 -06:00
tangxifan aff73bdd74 deployed edge sorting and make it as an option to link_arch command 2020-03-08 15:59:53 -06:00
tangxifan b80e26e711 update bitstream generator to use sorted edges 2020-03-08 15:36:47 -06:00
tangxifan 5558932762 use sorted edges in building routing modules 2020-03-08 15:31:41 -06:00
tangxifan f9499afe04 remove unused variable 2020-03-08 15:00:01 -06:00
tangxifan 0c7aa2581d update vpr8 version with hotfix on undriven pins in GSB 2020-03-08 14:58:56 -06:00
tangxifan ca92c2717f bug fix for tile directs 2020-03-07 16:00:32 -07:00
tangxifan 37423729ec bug fixing for naming the duplicated pins 2020-03-07 15:44:57 -07:00
tangxifan 6e83154703 move rr_gsb and rr_chan to tileable rr_graph builder 2020-03-04 14:14:28 -07:00
tangxifan 4b7d2221d1 adapt rr_graph builder utilized functions and move rr_graph utils from openfpga to vpr 2020-03-04 13:55:53 -07:00
tangxifan 7fcd27e000 now we give explicit instance name to each interconnect inside grid. Thus resolve the problem in sdc writer 2020-03-03 12:29:58 -07:00
tangxifan 3241d8bd37 put analysis sdc writer online. Minor bug in redudant '/' to be fixed 2020-03-02 19:54:18 -07:00
tangxifan 037c7e5c43 adapt top-level function for analysis SDC writer 2020-03-02 17:58:44 -07:00
tangxifan 24f7416c71 adapt analysis SDC writer for grids 2020-03-02 17:15:01 -07:00
tangxifan 6474183539 adapt analysis SDC writer for routing modules 2020-03-02 14:29:58 -07:00
tangxifan 543cff58b9 start porting analysis SDC writer 2020-03-02 13:44:08 -07:00
tangxifan a17c14c363 clean-up command addition and add fabric bitstream building to sample script 2020-03-02 10:39:19 -07:00
tangxifan aa66042dfb move simulation setting annotation to a separated source file 2020-02-29 15:19:02 -07:00
tangxifan 7b18f7cd09 now the auto select number of clocks in simulation is online 2020-02-29 13:29:16 -07:00
tangxifan 3807a940f4 fixed critical bugs in bitstream generation and now we pass microbenchmarks 2020-02-28 16:45:50 -07:00
tangxifan a6c2d2c7d1 bug fixed for io location mapping 2020-02-28 14:46:01 -07:00
tangxifan 80bb2baae5 start verification and bug fixing 2020-02-28 14:29:01 -07:00
tangxifan 542fadaaae allow users to use VPR critical path delay in OpenFPGA simulation 2020-02-28 12:10:27 -07:00
tangxifan de8425874c use user defined critical path delay in SDC generation 2020-02-28 11:24:39 -07:00
tangxifan 092e10afda bring pnr sdc generator online and fixed minor bugs in bitstream writing 2020-02-28 11:14:50 -07:00
tangxifan e45fa18c4c adapt PnR SDC writer 2020-02-28 10:06:35 -07:00
tangxifan 89c51b70e3 split sdc option into two categories which will be called by different commands 2020-02-28 09:48:58 -07:00
tangxifan fdcb982903 adapt pnr sdc grid writer 2020-02-27 21:06:33 -07:00
tangxifan b4ed931ac6 adapt sdc routing writer 2020-02-27 20:35:56 -07:00
tangxifan d136ac236f adapt sdc memory utils 2020-02-27 19:39:57 -07:00
tangxifan 78476ca774 adapt sdc writer utils 2020-02-27 19:36:28 -07:00
tangxifan 8322b1623d start porting SDC generator 2020-02-27 19:30:36 -07:00
tangxifan 65c81e14b2 add simulation ini file writer 2020-02-27 18:01:47 -07:00
tangxifan ae899f3b11 bug fixed for clock names 2020-02-27 16:51:55 -07:00
tangxifan 9b769cd8e4 bug fix for using renamed i/o names 2020-02-27 16:37:20 -07:00
tangxifan b010fc1983 add warning to force formal_verification_top_netlist enabled 2020-02-27 13:28:21 -07:00
tangxifan 078f72320f debugging Verilog testbench generator. Bug spotted in using renamed atom_block and clock ports 2020-02-27 13:24:26 -07:00
tangxifan f558405887 ported verilog testbench generator online. Split from fabric generator. Testing to be done 2020-02-27 12:33:09 -07:00
tangxifan 77529f4957 adapt top Verilog testbench generation 2020-02-26 21:30:21 -07:00
tangxifan bb671acac3 add formal random Verilog testbench generation 2020-02-26 20:58:16 -07:00
tangxifan e9adb4fdbc add preconfig top module Verilog generation 2020-02-26 20:38:01 -07:00
tangxifan b3796b0818 build io location map 2020-02-26 19:58:18 -07:00
tangxifan 25e0583636 add io location map data structure and start porting verilog testbench generator 2020-02-26 17:10:57 -07:00
tangxifan 410dcf6ab6 debugged LUT bitstream 2020-02-26 11:42:18 -07:00
tangxifan a26d31b87f make write bitstream online 2020-02-26 11:09:23 -07:00
tangxifan 759758421d found the bug in physical pb mode bits and fixed 2020-02-25 23:45:49 -07:00
tangxifan 075264e3e3 debugging LUT bitstream generation 2020-02-25 23:29:16 -07:00
tangxifan 4024ed63cb add truth table build up for physical LUTs 2020-02-25 22:39:42 -07:00
tangxifan 2dd80e4830 add more methods to acquire physical truth table from physical pb 2020-02-25 21:21:44 -07:00
tangxifan ca038857d3 add lut physical truth table to physical pb 2020-02-25 13:34:13 -07:00
tangxifan 2d86a02358 refactored LUT bitstream generation to use vtr logic 2020-02-25 12:45:13 -07:00
tangxifan 2c44c70557 bring pb interconnection bitstream generation online 2020-02-25 00:28:06 -07:00
tangxifan 04c69d30c2 start adding grid bitstream builder. TODO: lut and interconnect bitstream decoding 2020-02-24 19:38:02 -07:00
tangxifan 8e9660b816 add mapped block fast look-up as placement annotation 2020-02-24 16:09:29 -07:00
tangxifan 712eeb1340 bring bitstream generator for routing modules online 2020-02-23 22:09:46 -07:00
tangxifan 86c7c24701 add fabric bitstream generation online 2020-02-23 20:58:17 -07:00
tangxifan 8723007f68 Bring mux bitstream generation online 2020-02-23 20:53:24 -07:00
tangxifan 51439ba3b4 add bitstream writer to be integrated 2020-02-23 20:40:18 -07:00
tangxifan 2d17395e13 start integrating fpga_bitstream. Bring data structures online 2020-02-22 23:04:42 -07:00
tangxifan 9583731531 add results saver for lb router 2020-02-22 22:10:32 -07:00
tangxifan 921bf7dd7b use constant in device annotation 2020-02-21 20:45:22 -07:00
tangxifan 926e429374 add save repacking results in physical pb 2020-02-21 20:39:49 -07:00
tangxifan 12f2888c7c add physical pb data structure and basic allocator 2020-02-21 17:47:27 -07:00
tangxifan b035b4c87f debugged with Lbrouter. Next step is to output routing traces to physical pb data structure 2020-02-21 12:16:50 -07:00
tangxifan 1b66e837ba bug fixing for lb router. Add physical mode to default node expanding settings 2020-02-21 11:29:00 -07:00
tangxifan 0b0e00b5f4 debugging the LbRouter 2020-02-20 21:56:15 -07:00
tangxifan 4abaef14b5 bug fixed in pb_pin fix-up. This is due to A CRITICAL BUG IN PHYSICAL_TILE PIN MAPPING!!! 2020-02-20 20:50:59 -07:00
tangxifan 3e07d7d5e0 finish net addition to LbRouter. Found a bug in pb pin fix-up. Need to consider clustered I/O block z offset 2020-02-20 20:26:20 -07:00
tangxifan fdb27c5a6b move lb_rr_graph construction to repack command 2020-02-20 13:24:34 -07:00
tangxifan d8ab5536e1 add advanced check codes for lb_rr_graph 2020-02-19 21:41:05 -07:00
tangxifan ed5d83178f add fundamental check codes for LbRRGraph 2020-02-19 21:07:31 -07:00
tangxifan bc27f9dd0c add check codes for nets inside LbRouter 2020-02-19 20:34:30 -07:00
tangxifan 43f15e4d6f add methods to LbRouter for nets to be routed and access to routing traceback 2020-02-19 16:40:53 -07:00
tangxifan 444b994285 flatten the t_net inside LbRouter into internal data 2020-02-19 15:37:22 -07:00
tangxifan 2b37fcb296 use strong id for nets to be routed in LbRouter 2020-02-19 15:09:25 -07:00
tangxifan 2f1bcdd27d use local data to store illegal modes for pb_graph_node inside LbRouter 2020-02-19 14:53:35 -07:00
tangxifan 5ccb4adb08 refactored LB router main function 2020-02-19 11:09:24 -07:00
tangxifan 3d5a15d41e refactored most functions except echo and try_route() in LbRouter 2020-02-19 00:07:36 -07:00
tangxifan 80fa6f8a0a refactored skip nets in LbRouter 2020-02-18 22:08:51 -07:00
tangxifan 289c869caf refactored expand rt_node in LbRouter 2020-02-18 22:01:22 -07:00
tangxifan c7ef14fc23 refactoring node expansion in LbRouter 2020-02-18 21:51:03 -07:00
tangxifan 11879d43b4 add methods one by one to LbRouter from cluster_router.cpp 2020-02-18 19:22:36 -07:00
tangxifan 0310dafe42 add accessors to LBRouter 2020-02-18 18:35:00 -07:00
tangxifan 1799db810d compilation error fix 2020-02-18 17:04:36 -07:00
tangxifan d58d14df8e start encapsulate the whole lb router in an object 2020-02-18 16:50:56 -07:00
tangxifan ed25ccc70f start refactoring lb router in openfpga namespace 2020-02-18 12:00:27 -07:00
tangxifan 6060440b97 fine tuning for the verbose output 2020-02-17 21:14:15 -07:00
tangxifan 409b3f6896 add lb_rr_graph builder for the refactored version 2020-02-17 21:11:56 -07:00
tangxifan 8e97443410 start working on repack 2020-02-17 17:57:43 -07:00
tangxifan 62e4f14e30 add lb_rr_graph to device annotation 2020-02-17 17:26:27 -07:00
tangxifan 6c69b52ded Add missing file 2020-02-17 17:11:29 -07:00
tangxifan 92076c1460 refactored lb_rr_graph in the same principle of RRGraph object 2020-02-17 16:59:24 -07:00
tangxifan 60f40a9657 use constant module manager as much as possible in Verilog writer 2020-02-16 16:35:26 -07:00
tangxifan 11775c370b bring FPGA top module verilog writer online. Fabric Verilog generator done 2020-02-16 16:18:14 -07:00
tangxifan e37ac8a098 add grid module Verilog writer 2020-02-16 16:04:41 -07:00
tangxifan c20caa1fa3 routing module Verilog writer is online 2020-02-16 14:47:54 -07:00
tangxifan c6c3ef71f3 adapt all the Verilog submodule writers and bring it onlien 2020-02-16 13:35:18 -07:00
tangxifan 99c3712b6f adapt Verilog wire module writer 2020-02-16 12:59:37 -07:00
tangxifan 5cc68b0730 adapt LUT Verilog writer 2020-02-16 12:45:58 -07:00
tangxifan 105ccabecc adapt memroy writer for verilog 2020-02-16 12:41:43 -07:00
tangxifan c9d8120ae0 adapt Verilog mux writer 2020-02-16 12:35:41 -07:00
tangxifan a88c4bc954 add decode utils to libopenfpga and adapt local decoder writer in Verilog 2020-02-16 12:21:59 -07:00
tangxifan 3efd1a2a6d print verilog module writer online 2020-02-16 12:04:03 -07:00
tangxifan cf34339e96 adapt essential gates for submodule generation 2020-02-16 11:57:19 -07:00
tangxifan 2eba882332 put verilog submodules online. ready to bring the how submodule writer online 2020-02-16 11:41:20 -07:00
tangxifan 4cb61e2138 bring preprocessing flag Verilog netlists online 2020-02-16 00:03:24 -07:00
tangxifan 0d5292ad0d adapt verilog writer utils 2020-02-15 23:26:59 -07:00
tangxifan bf54be3d00 add option data structure for FPGA Verilog 2020-02-15 21:39:47 -07:00
tangxifan da79ef687c add missing files 2020-02-15 20:54:37 -07:00
tangxifan 8b0df8632c bring fpga verilog create directory online 2020-02-15 20:38:45 -07:00
tangxifan 622c7826d1 start transplanting fpga_verilog 2020-02-15 15:03:00 -07:00
tangxifan 85627dc128 put build top module online 2020-02-15 14:13:32 -07:00
tangxifan 539f13720a tile direct supports inter-column/inter-row direct connections 2020-02-15 13:42:53 -07:00
tangxifan 213c611c0b add tile direct builder 2020-02-14 22:21:32 -07:00
tangxifan 7e86cf1079 add tile direct data structure 2020-02-14 19:11:49 -07:00
tangxifan 59c13550e0 add direct annotation with inter-column/row syntax 2020-02-14 17:40:59 -07:00
tangxifan c855ab24f5 put build top module memory connections online 2020-02-14 11:07:04 -07:00
tangxifan 9dc9c2c9f7 add build top module connection functions 2020-02-14 10:45:24 -07:00
tangxifan 36179b6ced start moving top-module builder. Now adapt the utils 2020-02-14 10:00:24 -07:00
tangxifan afe8278670 put routing module builder online 2020-02-13 17:35:29 -07:00
tangxifan cf440f92d3 put routing module builder util function online 2020-02-13 16:05:23 -07:00
tangxifan 89086ed080 add verbose output to build grid module 2020-02-13 15:38:26 -07:00
tangxifan 072965cd64 make grid module builder online; basic support on physical tiles 2020-02-13 15:27:16 -07:00
tangxifan 59d579425e add utils for duplicate pins in grid module builder 2020-02-12 20:48:07 -07:00
tangxifan 895d5b5a0a add utils for grid module builder 2020-02-12 20:25:05 -07:00
tangxifan 002c2795fe add memory module builder 2020-02-12 20:06:38 -07:00
tangxifan 8e381f0581 add wire module builder 2020-02-12 19:57:15 -07:00
tangxifan e842150cc5 add lut module builder 2020-02-12 19:52:41 -07:00
tangxifan fddd3c9463 add mux module builder 2020-02-12 19:45:14 -07:00
tangxifan ea7d879b4f add decoder module builder 2020-02-12 18:28:50 -07:00
tangxifan f11832b8cf start integrating module graph builder 2020-02-12 17:53:23 -07:00
tangxifan 13fadd0f91 move compact routing hierarchy to build_fabric command 2020-02-12 15:49:47 -07:00
tangxifan c78d3e9af1 add mux library builder 2020-02-12 14:58:23 -07:00
tangxifan ce63b1cc62 add circuit model binding for direct connections and enhance model type checking 2020-02-12 11:40:20 -07:00
tangxifan 4a05cec037 add rr_segment binding to circuit model 2020-02-12 11:21:40 -07:00
tangxifan a736e09c29 add rr_switch binding in link openfpga arch command 2020-02-12 10:52:20 -07:00
tangxifan feccbc5780 add more methods to link routing to circuit models in device annotation 2020-02-12 10:08:54 -07:00
tangxifan a31d6c6d1e rename pb_type annotation to device annotation 2020-02-12 09:52:18 -07:00
tangxifan 4367dba9b7 move mux graph and decoder builders to vpr8 integration; ready to link the rr_switch to circuit models 2020-02-11 21:02:58 -07:00
tangxifan 175bef014a add compact_routing hierarchy command 2020-02-11 17:40:37 -07:00
tangxifan 1372f748f1 put GSB builder online 2020-02-11 16:37:14 -07:00
tangxifan 85f3826939 put device rr_gsb online. Ready to plug-in 2020-02-09 14:58:23 -07:00
tangxifan 230c7b709a put rr_gsb data structure online 2020-02-09 00:20:44 -07:00
tangxifan 0b6b3bc029 start adapting rr_gsb related data structure 2020-02-07 11:32:33 -07:00
tangxifan 3d7eff64b9 bug fixed for lut truth table fixup. Results look good 2020-02-06 17:47:25 -07:00
tangxifan ed9e038845 add functionality of LUT truth table fix-up 2020-02-06 17:14:29 -07:00
tangxifan 99f5a86b49 bug fixed for routing annotation and routing net fix-up 2020-02-06 12:54:55 -07:00
tangxifan cccbb9fd49 add missing files 2020-02-05 22:12:44 -07:00
tangxifan dad204674b done an initial version of clustering net fix-up based on routing results. Debugging on the way 2020-02-05 21:50:52 -07:00
tangxifan 75c3507acf add verbose output option for openfpga linking architecture 2020-01-31 11:36:58 -07:00
tangxifan 392ab0f027 move duplicated codes on message printing to functions 2020-01-31 10:53:41 -07:00
tangxifan afde9808da add check codes for physical pb_graph_node and pb_graph_pin annotation 2020-01-31 10:47:05 -07:00
tangxifan fdc304a0fb fixed a bug in mapping pb_graph pins using rotation offset 2020-01-30 22:00:53 -07:00
tangxifan 02d6256e95 pass simple test on pb_type annotation for frac_lut5 architecture 2020-01-30 21:39:44 -07:00
tangxifan 007e1997e6 add pb_graph pin annotation 2020-01-30 19:40:40 -07:00
tangxifan d62c9fe86f adding pb_graph_node annotation 2020-01-30 16:40:13 -07:00
tangxifan e48ab8cb44 move annotation source files to a separated folder 2020-01-30 13:37:41 -07:00
tangxifan f28ca3ffd0 add more echo to log 2020-01-29 18:58:57 -07:00
tangxifan 87f1ca1151 add naming fix-up report generation 2020-01-29 18:56:47 -07:00
tangxifan 2dc4c26257 add naming fix-up 2020-01-29 17:49:33 -07:00
tangxifan 8c86c0af04 add check netlist naming conflict command and functions 2020-01-29 16:23:41 -07:00
tangxifan d2c47693f6 add check codes for mode bits annotation to pb_types and clean up utils source files 2020-01-29 14:29:00 -07:00
tangxifan a4381563bc move check codes to separated source files 2020-01-29 13:47:59 -07:00
tangxifan b67358d2c5 add check codes for physical pb_type circuit model annotation 2020-01-29 12:56:49 -07:00
tangxifan a722438fa3 add mode bits binding to pb_type annotation 2020-01-29 12:27:55 -07:00
tangxifan 61b487eb75 show more information in the log file 2020-01-29 11:29:41 -07:00
tangxifan 399ba8d648 add pb type port mapping to circuit model ports 2020-01-29 11:24:14 -07:00
tangxifan cf3c5b5c42 add circuit model type checking for physical pb_type annotation 2020-01-29 10:41:02 -07:00
tangxifan 8a7a4dc48e add physical type annotation for interconnects and inference 2020-01-28 21:59:10 -07:00
tangxifan bb7fa2af77 add pb interconnect binding to circuit model 2020-01-28 17:04:10 -07:00
tangxifan 1651c9ca18 add binding between physical pb_type and circuit models 2020-01-28 16:03:02 -07:00
tangxifan a4a84ca35b add check codes for physical pb_type and port annotation 2020-01-28 15:27:00 -07:00
tangxifan 5d9850c2eb move pb_type annotation to independent source files as they are getting large 2020-01-28 15:13:14 -07:00
tangxifan fdcc04cca8 add physical pb_type inference 2020-01-28 14:55:47 -07:00
tangxifan caeb0bfff8 add physical pb_type binding for explicit annotations 2020-01-28 14:27:35 -07:00
tangxifan 82f71e82e8 add check codes for physical mode annotation for pb_types 2020-01-27 21:15:32 -07:00
tangxifan f99dd4c261 debugged pb_type physical mode annotation 2020-01-27 20:40:18 -07:00
tangxifan b8c504f574 Do not allow vpr to free everything when it is done. So that we can have access to their device data 2020-01-27 19:49:05 -07:00
tangxifan df056f5d70 openfpga shell will stay in interactive mode after executing a script 2020-01-27 17:56:24 -07:00
tangxifan 5ecb771673 debugging the annotation to physical mode of pb_types 2020-01-27 17:43:22 -07:00
tangxifan a6fbbce33e start developing the openfpga arch binding to vpr 2020-01-27 15:31:12 -07:00
tangxifan 5039af2c2f update title page 2020-01-24 17:00:53 -07:00
tangxifan a7a1fe8a74 simplify openfpga title page and add command dependency on read_arch and write_arch 2020-01-24 16:57:14 -07:00
tangxifan d1725de606 add ctags script to index openfpga source files 2020-01-24 10:15:16 -07:00
tangxifan 655f84b00e add write_openfpga_arch command to openfpga shell 2020-01-23 20:58:15 -07:00
tangxifan a03f8aa346 add profiling for read arch 2020-01-23 20:12:30 -07:00
tangxifan cdb3b6de46 add read_openfpga_arch to OpenFPGA shell 2020-01-23 19:10:53 -07:00
tangxifan e69aa5ba30 change type casting for vpr macro 2020-01-23 14:57:53 -07:00
tangxifan 3cb16a2279 move basic commands to separated CXX files 2020-01-23 14:42:49 -07:00
tangxifan ba207ee5a5 start split workload from the main.cpp in openfpga 2020-01-23 13:24:35 -07:00
tangxifan 7909a1ad82 update title for openfpga shell 2020-01-22 20:29:57 -07:00
tangxifan 523f9ac391 start implement openfpga shell and use vpr as a macro 2020-01-22 20:20:10 -07:00