Commit Graph

818 Commits

Author SHA1 Message Date
Clifford Wolf
b4dc6b8845 Add info message for promoted global nets
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-10-03 13:40:21 +02:00
David Shah
7ef8a7415d ice40: Add error for bad PACKAGE_PIN connections
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-03 12:14:49 +01:00
David Shah
a27c7b45de Refactor chain finder to its own file
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 16:29:26 +01:00
David Shah
ea03aafc26 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 15:13:18 +01:00
Clifford Wolf
07cf349ee4
Merge pull request #79 from YosysHQ/ice40lvds
ice40: Adding LVDS input support
2018-09-25 18:21:56 +02:00
Clifford Wolf
1eb7411fb0
Merge pull request #76 from YosysHQ/plloutglobal_fix
Add needed PLLOUTGLOBAL ports and mapped it
2018-09-25 18:15:00 +02:00
David Shah
f1aa7093fe ice40: Fix carry packer bug
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-25 15:52:32 +01:00
David Shah
dea87e46c4 ice40: LVDS input bitstream support
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-24 17:58:55 +01:00
David Shah
2ee86ab5a8 ice40: Tristate IO support fixes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-24 15:25:37 +01:00
David Shah
d5d9fb27a6 ice40: Validity check for LVDS IO
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-24 15:14:28 +01:00
David Shah
9834b68041 ice40: Remove obsolete belType member
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-24 14:27:50 +01:00
Miodrag Milanovic
f8e258825f Added required checks for PLL and fixed messages eol 2018-09-19 18:41:28 +02:00
Eddie Hung
c9059fc7d0 [ice40] TimingPortClass of LC.O ports without any inputs now TMG_IGNORE 2018-09-15 15:16:21 -07:00
Miodrag Milanovic
fdf7593c42 Add needed PLLOUTGLOBAL ports and mapped it properly 2018-09-12 18:33:08 +02:00
Serge Bazanski
8ed64450f3
Merge pull request #56 from YosysHQ/q3k/issue-55
ice40: make PLL packing more robust
2018-08-19 21:37:02 +01:00
Sergiusz Bazanski
1bf22a7f64 ice40: make PLL packing more robust 2018-08-19 21:30:55 +01:00
Clifford Wolf
801f630983 Add more missing iCE40 gfx (LP/HX is complete now)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 18:43:38 +02:00
Clifford Wolf
49d3857f97 Add iCE40 gfx for carry chain pips and LUT cascade pips
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 17:55:54 +02:00
Clifford Wolf
e45769292a Fix iCE40 pip gfx for pips on the top edge of a switchbox
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 17:23:21 +02:00
Clifford Wolf
b7d4c7afd9 Add iCE40 gfx for IO span-4 corners
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 16:53:34 +02:00
Clifford Wolf
7cdafb8121 Add iCE40 gfx for span-4 wires between IO tiles
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 16:31:02 +02:00
Clifford Wolf
26be6f9761
Merge pull request #47 from YosysHQ/settings_propagate
Use settings for placer1 and router1
2018-08-18 19:25:19 +02:00
Clifford Wolf
a346793c19 Add iCE40 gfx for wires connecting fabric tiles and IO tiles
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18 17:17:01 +02:00
Clifford Wolf
456a83430a Improve iCE40 gfx for IO tiles and RAM tiles
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18 16:20:33 +02:00
Clifford Wolf
5500cf3aff Add ice40 wire attributes (grid position, segment list)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18 14:14:27 +02:00
Clifford Wolf
97520bb728 Merge branch 'master' of github.com:YosysHQ/nextpnr into archattr 2018-08-18 13:06:21 +02:00
Miodrag Milanovic
3c51007026 do not break if there are no nets loaded from sym section 2018-08-18 10:28:50 +02:00
Clifford Wolf
428f0b9eba Add Arch attrs API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-14 17:16:14 +02:00
Eddie Hung
fc0496ec71 Merge remote-tracking branch 'origin/master' into placer_speedup 2018-08-10 19:51:35 -07:00
Eddie Hung
a41500a015 Rework Arch::logicCellsCompatible() to take pointer + size, allowing use of std::array 2018-08-10 19:50:27 -07:00
Miodrag Milanovic
e5006d4f2f Save settings and give nicer names to some 2018-08-10 19:11:30 +02:00
Eddie Hung
396cae5118 Make containers static 2018-08-09 20:53:33 -07:00
Miodrag Milanovic
93a0d24560 Use settings for placer1 and router1 2018-08-09 18:39:10 +02:00
David Shah
ed602baa06
Merge pull request #42 from YosysHQ/floorplan
Add basic data structures for floorplanning
2018-08-09 10:49:11 +02:00
Clifford Wolf
5ddde5c49f Add pip locations
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-09 10:39:53 +02:00
Eddie Hung
41e05c95aa ice40: Speedup Arch::predictDelay() with pass-by-ref 2018-08-08 19:52:39 -07:00
Miodrag Milanovic
61bce47f3c Use settings for json and pcf 2018-08-08 20:14:18 +02:00
Clifford Wolf
f6189e4677 Merge branch 'master' of github.com:YosysHQ/nextpnr into constids 2018-08-08 19:35:13 +02:00
David Shah
cd4e761bb7
Merge pull request #44 from YosysHQ/improve_timing_spec
Speed up budget allocator using topographical ordering and update cell timing API
2018-08-08 19:23:47 +02:00
Miodrag Milanovic
46aa56021b Moved option to common 2018-08-08 18:34:12 +02:00
Miodrag Milanovic
fc5cee6fb8 clangformat 2018-08-08 18:17:34 +02:00
David Shah
751335977f ice40: Add error for unknown cell type when getting timing info
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 18:07:34 +02:00
Clifford Wolf
f875a37467 Get rid of old iCE40 id_ Arch members
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-08 17:17:16 +02:00
David Shah
433ad6462e Arch API: Removing Arch::isIOCell
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 17:06:59 +02:00
Clifford Wolf
e03ae50e21 Get rid of PortPin and BelType (ice40, generic, docs)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-08 17:01:18 +02:00
David Shah
e6eb203868 ice40: Add timing arcs through global buffers
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 16:34:41 +02:00
David Shah
d173ddba36 timing: Debugging implementation of new timing API
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 15:15:21 +02:00
David Shah
787fe5661c ice40: Timing arch fix
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 15:00:39 +02:00
David Shah
d8b3830031 timing: Update to new use API (currently broken)
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 14:58:43 +02:00
David Shah
bf42e525cb Arch API: New specification for timing port classes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 14:37:59 +02:00
Miodrag Milanovic
5df90bc5a5 Merge remote-tracking branch 'origin/master' into common_main
# Conflicts:
#	ecp5/main.cc
#	ice40/main.cc
2018-08-08 10:48:05 +02:00
Eddie Hung
f44a5fb904 clangformat 2018-08-06 17:35:23 -07:00
Eddie Hung
1b9a664bb1 Merge branch 'master' into assign_budget_speedup 2018-08-06 12:30:24 -07:00
Eddie Hung
9addcac09c ice40's getBudgetOverride() to return correct delay for different devices 2018-08-06 12:22:13 -07:00
Eddie Hung
21cd1d7dd6 Add new Arch::isIOCell() API function 2018-08-06 12:11:47 -07:00
Miodrag Milanovic
fffaaa613f Added project loader 2018-08-06 19:32:17 +02:00
Eddie Hung
0f3459dbe5 Fix ice40's getBudgetOverride() to override only for COUT -> CIN 2018-08-06 08:22:08 -07:00
Eddie Hung
823ceaacbf Change getBudgetOverride() signature to return bool and modify budget in place 2018-08-06 07:56:28 -07:00
Eddie Hung
f048deb33d Restore initial assign_budget() call after pack(), restrict call after initial_placement to slack_redist 2018-08-05 22:55:58 -07:00
David Shah
1ce0b5add2 API change: Use CellInfo* and NetInfo* as cell/net handles (Python bindings)
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-05 16:21:13 +02:00
Miodrag Milanovic
7794bbfb3f Fix message for pcf loading 2018-08-05 16:13:49 +02:00
Miodrag Milanovic
3bb9a7df01 Added command parser and common implementation 2018-08-05 16:13:34 +02:00
Clifford Wolf
5e53075990 API change: Use CellInfo* and NetInfo* as cell/net handles (common, ice40)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-05 15:25:42 +02:00
Clifford Wolf
287fe7e894 clangformat 2018-08-05 14:18:34 +02:00
Clifford Wolf
528eddcaf7 Fix bug in ice40 estimateDelay()
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 22:29:43 +02:00
Clifford Wolf
175da732ac Use faster model for ice40 predictDelay()
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 20:16:43 +02:00
Clifford Wolf
f6b3333a7d Add new iCE40 delay estimator and delay predictor
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 19:50:49 +02:00
David Shah
67347573c2 ice40: Bitstream gen for LUT permutation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 18:23:48 +02:00
Clifford Wolf
31fe52581b Add generation of models to tmfuzz
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 16:54:12 +02:00
Clifford Wolf
bd36cc1275 Refactor ice40 timing fuzzer used to create delay estimates
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 13:41:42 +02:00
Clifford Wolf
700e68746a Fix bug in ice40 chipdby.py add_wire() that moves some wires to X0/Y0
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 13:33:24 +02:00
Clifford Wolf
086bc941a8 Remove SVG functionality from ice40 main
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-04 11:52:35 +02:00
Clifford Wolf
96291f17aa Merge branch 'master' of github.com:YosysHQ/nextpnr into lutperm 2018-08-04 10:32:07 +02:00
Eddie Hung
d66edf5223 Merge branch 'master' into slack_redist_freq 2018-08-03 23:43:53 -07:00
David Shah
65d73eb983
Merge pull request #23 from daveshah1/use_placeconstr
Making use of relative constraints
2018-08-04 08:32:42 +02:00
David Shah
affc6da1af ice40: Add SB_GB timing to database
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 08:28:13 +02:00
David Shah
082b8bf272 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 08:18:04 +02:00
David Shah
176a23936c Tidy up
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-04 08:15:49 +02:00
Eddie Hung
3d5dcda12c Auto frequency only if --freq 0 is set 2018-08-03 19:53:32 -07:00
Clifford Wolf
8d372b86f3 Proper ice40 wire types
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-03 21:11:12 +02:00
David Shah
b937e6defe Add constraint weight as a command line option
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 18:31:54 +02:00
Clifford Wolf
2a1d54389f Add iCE40 pseudo-pips for lut permutation
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-03 17:37:59 +02:00
David Shah
fd2174149c Fixing constraint placement bugs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 16:29:44 +02:00
David Shah
8c518cb838 Fixing relative constraint implementation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 15:40:01 +02:00
David Shah
7e9209878c Reworking packer and placer to use new generic rel legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 15:00:32 +02:00
David Shah
26c68c4bcc Remove old place legaliser, set placement constraints instead (currently ignored by placer)
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 13:18:48 +02:00
Clifford Wolf
80e6b17ec9
Merge pull request #21 from daveshah1/promote_logic_globals
ice40: Promote 'logic' globals as well as clock/enable/reset
2018-08-03 12:51:55 +02:00
Clifford Wolf
e673d9d2db
Merge pull request #22 from YosysHQ/routethru
Add iCE40 LUT route-through pips
2018-08-03 12:51:37 +02:00
David Shah
483f1b772c ice40: Promote 'logic' globals as well as clock/enable/reset
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 09:56:56 +02:00
David Shah
35bc80e130 ice40: Add bitstream gen for routethru LUTs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-03 09:26:37 +02:00
Miodrag Milanovic
a761b772c8 Make worker generic 2018-08-02 18:10:01 +02:00
Miodrag Milanović
e46209e734
Merge pull request #11 from mmicko/project_load
preserve command line parameters for project load
2018-08-02 08:24:49 -07:00
Clifford Wolf
36009645ce Add LUT route-through pips to iCE40 architecture database
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 16:28:47 +02:00
David Shah
a7269a685e ice40: Use real cell timings
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-02 16:02:51 +02:00
David Shah
c0aaac8dfa ice40: Adding cell timings to chipdb
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-02 15:20:43 +02:00
Clifford Wolf
6ccf8629b5 Add Router1Cfg
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 13:58:23 +02:00
Miodrag Milanovic
869a804ee1 preserve command line parameters for project load 2018-08-02 06:29:21 +02:00
Clifford Wolf
29dd98420b Remove getFrameDecal() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-01 11:30:11 +02:00
David Shah
0414c93403 ice40: Add HFOSC support, force fabric routing on oscillators for now
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-01 09:45:08 +02:00
David Shah
bbd2ecf558 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-01 09:33:52 +02:00
Miodrag Milanovic
009bed51cb Display warning only if gui is not used 2018-08-01 08:26:50 +02:00
Miodrag Milanovic
8293569c32 Fix filenames for MSVC build 2018-08-01 08:16:38 +02:00
David Shah
b1a9978922 Merge branch 'redist_slack' into 'master'
Update budgets throughout placement and routing

See merge request SymbioticEDA/nextpnr!16
2018-08-01 05:59:34 +00:00
Eddie Hung
92ec2cd138 clangformat for stuff I've touched 2018-07-31 20:57:36 -07:00
Sergiusz Bazanski
85fc356fc1 clangformat 2018-08-01 03:59:27 +01:00
Eddie Hung
f646ec790a Modify the getNetinfo*() functions and getBudgetOverride() to not use
user_idx and to take a PortRef& instead
2018-07-31 19:31:54 -07:00
Eddie Hung
720e815865 Add --slack_redist_iter for ice40 2018-07-31 19:07:39 -07:00
Eddie Hung
5d58d6ad1b Merge branch 'redist_slack' of gitlab.com:SymbioticEDA/nextpnr into redist_slack 2018-07-31 18:26:39 -07:00
Eddie Hung
2d75053744 Merge remote-tracking branch 'origin/estdelay' into redist_slack
Conflicts:
	ecp5/arch.cc
	generic/arch.cc
	ice40/arch.cc
2018-07-31 16:18:08 -07:00
Eddie Hung
70747b9355 Merge branch 'redist_slack' into 'redist_slack'
# Conflicts:
#   common/timing.cc
2018-07-31 17:51:56 +00:00
Clifford Wolf
41726087b7 getChipName() should be const
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-31 17:01:38 +02:00
Clifford Wolf
2652485a01 Use icestorm timing information
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-31 16:43:19 +02:00
Clifford Wolf
32ff0059fe Add binary search to getBelPinWire() and getBelPinType()
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-31 11:55:25 +02:00
Eddie Hung
07e2c9ba99 assign_budget() after initial placement, not after pack 2018-07-30 22:20:49 -07:00
Eddie Hung
a82f6f4105 Modify predictDelay signature 2018-07-30 21:51:30 -07:00
Eddie Hung
a099aca3c2 Modify predictDelay signature 2018-07-30 19:19:30 -07:00
Eddie Hung
d5049bf0ed Merge remote-tracking branch 'origin/estdelay' into redist_slack 2018-07-30 18:59:04 -07:00
Eddie Hung
46b7469652 Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-30 18:14:40 -07:00
Clifford Wolf
b121008372 Towards better ice40 timing data
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 17:17:07 +02:00
David Shah
b09183db3b Use DelayInfo for cell timing instead of delay_t
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:59:30 +02:00
David Shah
84e0082925 cmake: Set --fast and --slow chipdb.py arguments
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:40:56 +02:00
Clifford Wolf
3d8b0087c3 Add ice40 chipdb.py --fast/--slow
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 16:36:34 +02:00
Clifford Wolf
8f9b031ef0 Add iCE40 fast/slow delay fields to chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 16:21:20 +02:00
David Shah
267970c01e ice40: Improving legalisation move statistics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:18:49 +02:00
David Shah
edc6cf8b23 ice40: Print legalisation statistics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:13:02 +02:00
Clifford Wolf
0daffec2a0 Add predictDelay Arch API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 15:35:40 +02:00
Clifford Wolf
0db86b8619 Improve ice40/benchmark
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 13:57:14 +02:00
Eddie Hung
beabb429b0 clangformat 2018-07-28 14:11:43 -07:00
Eddie Hung
02b3bda7f6 ice40 estimateDelay to account for out/in muxes 2018-07-27 19:52:45 -07:00
Eddie Hung
cd561b4316 getBudgetOverride() now handles COUT crossing tiles 2018-07-26 22:30:15 -07:00
Eddie Hung
97e546041e Revert "Remove Arch::getBudgetOverride()"
This reverts commit 749dae4ae5.
2018-07-26 21:37:19 -07:00
Eddie Hung
d5c2332ebf Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-26 21:00:26 -07:00
Sergiusz Bazanski
c37d2baaf6 common: rename GraphicElement::{style,type} enums, add _MAX members 2018-07-26 16:39:19 +01:00
Clifford Wolf
03f92948d1 clangformat and GraphicElement::style comments
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 17:14:56 +02:00
Clifford Wolf
467e0926f9 Add getWireType()/getPipType() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 16:38:11 +02:00
Clifford Wolf
6a59b8522c Move iCE40 switchbox gfx to UI groups
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 16:21:01 +02:00
Clifford Wolf
7152ae1e3d Add iCE40 pip gfx for carry_in mux
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 15:42:32 +02:00
Clifford Wolf
a86c4f2f5d Improvements in bbasm
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 15:22:52 +02:00
Eddie Hung
749dae4ae5 Remove Arch::getBudgetOverride() 2018-07-25 23:02:31 -07:00
Eddie Hung
e2f8deec41 clangformat 2018-07-25 18:22:23 -07:00
Eddie Hung
a21cc4dd5b Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-25 17:55:20 -07:00
Eddie Hung
950f33c1bb clangformat 2018-07-25 17:53:01 -07:00
Eddie Hung
e6015dc695 Merge remote-tracking branch 'origin/master' into eddieh/idstring_speedup 2018-07-25 17:51:47 -07:00
Eddie Hung
7c8c13aba1 Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-25 17:41:23 -07:00
Clifford Wolf
a8001daf6f Add ice40/benchmark/report.ipynb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 16:26:08 +02:00
Clifford Wolf
cc6e0e7df3 More minor ice40 benchmark improvements
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 15:51:19 +02:00
David Shah
1529fbe58c ice40: Tweaking picorv32_benchmark.py
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-25 15:49:43 +02:00
Clifford Wolf
6ea898855c Minor improvements in iCE40 benchmark scripts
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 14:02:22 +02:00
Clifford Wolf
5db4a3e8b0 Add ice40/benchmark/
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 13:28:12 +02:00
Clifford Wolf
f3dab003e7 Merge branch 'bba' into 'master'
bbasm

See merge request SymbioticEDA/nextpnr!18
2018-07-25 11:07:51 +00:00
Sergiusz Bazanski
2c34a50a7c ice40: after review 2018-07-25 12:01:51 +01:00
Sergiusz Bazanski
db4f2d2318 ice40: check PLL PACKAGEPIN drives only PLL, cosmetics 2018-07-25 11:47:24 +01:00
Sergiusz Bazanski
14a501969a Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/pll-pads 2018-07-25 11:32:45 +01:00
Sergiusz Bazanski
c554ab1ef0 clang-format 2018-07-25 11:32:40 +01:00
Sergiusz Bazanski
aad0d3eb35 ice40: support PLL40_*_PAD, fix pass-through LUT for LOCK 2018-07-25 11:32:21 +01:00
Miodrag Milanovic
6ac2a4de48 proper options for linux build 2018-07-25 12:13:06 +02:00
David Shah
e39290b712 Add a simple 8x benchmark script
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-25 10:48:24 +02:00
Eddie Hung
c71212d0e1 If --freq not set, attempt to find max by adjusting budget so min path slack == 0 2018-07-24 23:19:24 -07:00
Eddie Hung
9382938661 Merge branch 'master' into redist_slack 2018-07-24 22:20:10 -07:00
Eddie Hung
879f0d7c57 Reduce id() lookups for commonly used update_budget() 2018-07-24 21:21:11 -07:00
Clifford Wolf
c3859072d4 Use bbasm to create iCE40 chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 21:10:42 +02:00
Sergiusz Bazanski
2039112a47 ice40: after review 2018-07-24 15:59:18 +01:00
Sergiusz Bazanski
b31e95f82c Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/pll 2018-07-24 15:54:03 +01:00
David Shah
974ca143e8 Remove implementations of deprecated APIs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 16:09:29 +02:00
David Shah
5a170f286c ice40: Remove use of deprecated APIs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 15:52:56 +02:00
Clifford Wolf
c0c8dc7602 Remove uphill/downhill bel pins from ice40 db
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 15:44:39 +02:00
David Shah
942c552e07 Add bbasm target, use as passthru in iCE40 builder
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 15:31:00 +02:00
Clifford Wolf
9d38907e95 Add G_ARROW (for now same look as G_LINE)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 12:18:01 +02:00
David Shah
7858663aa7 timing: Model clock to Q times
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:46:14 +02:00
David Shah
4359197dfe ice40: Trim BRAM constant inputs, reduces routing congestion around BRAM
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:21:10 +02:00
David Shah
a09f95bb06 ice40: Fix SPRAM and other primitives in corners other than (0, 0)
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:16:33 +02:00
Sergiusz Bazanski
90ba958abe ice40: fixes before review 2018-07-24 03:19:22 +01:00
Sergiusz Bazanski
eaae1d299c ice40: move PLL->IO from pseudo pip to second uphill bel 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
65ceb20784 ice40: emit list of upbels in chipdb 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
fae7994bc3 clang-format 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
dbf79d78bb ice40: A slightly nicer way to do this. 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
065ea95eab ice40: Move spliceLUT back to pack.cc 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
1d3147e26a ice40: Prevent placement of SB_IOs in IO blocks used by PLL outputs 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
e6c7b14465 ice40: Refactor PLL/LOCK LUT splicing out into Arch:: 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
69233385f8 ice40: Emit feed-through LUTs for PLL/LOCK 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
db31c0625b ice40: Fail early on SB_PLL40_*_PAD cells 2018-07-24 02:55:38 +01:00
Sergiusz Bazanski
2b1f7875bb ice40: Implement emitting PLLs 2018-07-24 02:38:10 +01:00
Eddie Hung
771edd1fda Merge branch 'master' into redist_slack 2018-07-23 07:16:39 -07:00
Clifford Wolf
e647604e2a Add Context::archcheck() and "nextpnr-ice40 --test"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 14:03:23 +02:00
Clifford Wolf
90fe002a36 Remove getBelsByType() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 13:16:27 +02:00
David Shah
bfa1137fe0 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-23 13:02:57 +02:00
Clifford Wolf
27c5236826 Add getGridDimX(), getGridDimY(), getTileDimZ() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 12:19:54 +02:00
Clifford Wolf
3788bd26e6 Bugfix in iCE40 chipdb.py
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 00:25:49 +02:00
Miodrag Milanovic
b9c413a5aa Move to new API and remove deprecated 2018-07-22 19:58:17 +02:00
Clifford Wolf
e13fc7edab Add Arch::getBelPins() to generic and iCE40 archs
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 12:08:52 +02:00
Clifford Wolf
b60c9485d2 Add Arch::getBelPinType() and Arch::getWireBelPins() in iCE40 arch
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 11:56:51 +02:00
Clifford Wolf
62b66e0208 Rename getWireBelPin to getBelPinWire
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 10:59:21 +02:00
Clifford Wolf
1e96999863 clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 00:50:49 +02:00
Eddie Hung
926c186ec7 Add Arch::getBudgetOverride() to eliminate hack for COUT 2018-07-21 13:05:09 -07:00
Clifford Wolf
9e6deed3b8 Merge branch 'q3k/lock-2-electric-boogaloo' into 'master'
Basic locking and threading for Arch/GUI

See merge request SymbioticEDA/nextpnr!10
2018-07-21 19:45:24 +00:00
Clifford Wolf
30e2f0e1e8 Add Loc constructors
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 21:40:06 +02:00
Sergiusz Bazanski
6588aafdb8 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-21 20:00:42 +01:00
Miodrag Milanovic
f438fc615b Added driver and users for nets 2018-07-21 20:21:48 +02:00
Clifford Wolf
39b843ecac Merge branch 'router1ng' into 'master'
Router1ng

See merge request SymbioticEDA/nextpnr!13
2018-07-21 17:59:44 +00:00
Miodrag Milanovic
3175891cb5 Map ports to nets 2018-07-21 19:48:00 +02:00
Miodrag Milanovic
57c63e6921 create io cells out of asc 2018-07-21 17:54:35 +02:00
Miodrag Milanovic
912a79dc33 add cells that are in default state or no configuration 2018-07-21 17:38:22 +02:00
Miodrag Milanovic
7beb4739d4 Add used cells and attach them to bels 2018-07-21 17:04:47 +02:00
Clifford Wolf
41194d934b Refactoring of router1
- Use source-sink pairs as jobs, not whole nets
- Route nets with smallest slack first
- Preserve routes for already routed source-sink pairs
- Add small incentive for re-using wires

Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 17:02:53 +02:00
Miodrag Milanovic
13339c0355 Assign proper pips 2018-07-21 15:08:49 +02:00
Miodrag Milanovic
3afcd812c9 add only missing net 2018-07-21 14:41:04 +02:00
Clifford Wolf
78f40ca0af Change DelayInfo semantics to what we actually need
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 13:52:59 +02:00
Clifford Wolf
c556242976 Add getWireDelay API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 13:38:44 +02:00
Miodrag Milanovic
09a68affa3 Fix warnings and status 2018-07-21 12:22:41 +02:00
Miodrag Milanovic
fe239366b5 Made save project work as well 2018-07-21 12:15:50 +02:00
Miodrag Milanovic
20941292ad fix introduced bug 2018-07-21 09:22:09 +02:00
Sergiusz Bazanski
be14e161ae Re-enable drawing Pips. 2018-07-20 18:35:42 +01:00
Sergiusz Bazanski
5d0dbe9db9 clang-format 2018-07-20 18:24:34 +01:00
Sergiusz Bazanski
76e5236fb3 Nuke IdStringDB 2018-07-20 18:24:16 +01:00
Miodrag Milanovic
34ec70e88b Bind wires to net 2018-07-20 18:42:27 +02:00
Clifford Wolf
fd8239e170 Add Location APIs to generic arch
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-20 18:09:22 +02:00
Clifford Wolf
f6fa0300ae Improve iCE40 and common Loc code
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-20 17:33:57 +02:00
Clifford Wolf
e16b4a325e Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into gridapi 2018-07-20 17:13:26 +02:00
Miodrag Milanovic
6c835d76f2 Few more checks on parameters and error eol 2018-07-20 14:06:53 +02:00
Miodrag Milanovic
53034959f3 Start adding bitstream reading for ice40 2018-07-20 13:27:21 +02:00
Sergiusz Bazanski
55d5f8f248 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-20 10:59:33 +01:00
David Shah
3bad9c26cf ice40: Optimise reset/enable net checking
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-20 11:36:32 +02:00
David Shah
79dc910b40 ice40: Trim DSP inputs that are constant where appropriate
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 14:32:30 +02:00
David Shah
bff7d673ed ice40: Packer and bitstream gen support for MAC16s
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 14:03:48 +02:00
David Shah
6c38df7295 ice40: Adding cell definition for DSPs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 13:22:46 +02:00
David Shah
0cb9ec0757 ice40: Add virtual padin wires for intoscs and GB_IOs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 12:04:35 +02:00
David Shah
d221e90706 Reducing performance cost of asserts
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 11:43:10 +02:00
David Shah
b0d9b994eb ice40: Adding data for extra cell configuration
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 11:14:43 +02:00
David Shah
08ceb8a059 ice40: Renaming
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 14:34:32 +02:00
David Shah
ddd94edfe0 ice40: Fixes for inverted clocks
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 14:01:19 +02:00
Clifford Wolf
acdaec249a Cleanups in iCE40 blinky and picorv32 tests
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-18 13:46:00 +02:00
David Shah
d392b5f635 ice40: Use xArchArgs in validity check
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 12:51:07 +02:00
David Shah
70cfa7a6a4 ice40: Make assignArchArgs a Arch method; call also after legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 12:21:02 +02:00
David Shah
c75a924c3f ice40: Assign ArchArgs after packing
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 12:12:05 +02:00
Serge Bazanski
03508faabf WIP. 2018-07-17 19:16:26 +01:00
Clifford Wolf
ddfc535df7 Add ArchNetInfo and ArchCellInfo
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-17 20:04:49 +02:00
Serge Bazanski
498bef3f3e Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-17 16:03:48 +01:00
Clifford Wolf
c0f1af87f6 Add Loc struct for x/y/z bel locations
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-17 17:03:44 +02:00
David Shah
56fa8cc669 refactor: Remove incorrect uses of the term 'wirelength'
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-16 17:13:40 +02:00
Serge Bazanski
f3c6c76fff Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-15 21:57:42 +01:00
Clifford Wolf
5531546d6b Remove pip names from ice40 chip db to safe memory
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-15 21:41:34 +02:00
Clifford Wolf
164bd28348 Add iCE40 Pip gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-15 20:29:32 +02:00
Serge Bazanski
59a790cd00 Refactor IdString functionality into IdStringDB
This lets us more precisely control the lifetime of IdString databases
in contexts/arches.
2018-07-14 20:24:20 +01:00
Sergiusz Bazanski
eafb9b4281 Fix revert issues. 2018-07-14 19:02:52 +01:00
Sergiusz Bazanski
d327a0afbb Revert "Make ice40::Arch thread-safe"
This reverts commit 0816f447b7.
2018-07-14 19:01:33 +01:00
Sergiusz Bazanski
57f75385b0 Revert "Make PnR use Unlocked methods"
This reverts commit 9e4f97290a.
2018-07-14 18:53:08 +01:00
Sergiusz Bazanski
447ed83638 Revert "Introduce proxies for locked access to ctx"
This reverts commit 89809a8b81.
2018-07-14 18:52:56 +01:00
Sergiusz Bazanski
09ca9ea39e Revert "Comment arch.h"
This reverts commit dc3256e62f.
2018-07-14 18:50:58 +01:00
Sergiusz Bazanski
89b9d6bc8a Revert "Slight simplification of proxy code"
This reverts commit a71b576de6.
2018-07-14 18:50:54 +01:00
Sergiusz Bazanski
36b4e3382d Revert "Make GUI nice and smooth."
This reverts commit a8c84e90a3.
2018-07-14 18:50:50 +01:00