David Shah
df8688c227
ecp5: Delay tweaking for lower speed grades
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-21 10:55:23 +01:00
David Shah
7ae64b9477
ecp5: Reduce cfg.criticalityExponent for now
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-21 10:20:46 +01:00
Miodrag Milanovic
36ccc22fc9
Use flags for each step
2019-06-14 09:59:04 +02:00
Miodrag Milanovic
d9b0bac248
Save top level attrs and store current step
2019-06-07 16:11:11 +02:00
Miodrag Milanovic
78e6631f76
Cleanup
2019-06-07 13:49:19 +02:00
Miodrag Milanovic
54175f9187
No need for this one
2019-06-07 13:24:16 +02:00
David Shah
15a1d4f582
ecp5: Use an attribute to store is_global
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-07 11:55:20 +01:00
Miodrag Milanovic
1093d7e122
WIP saving/loading attributes
2019-06-07 11:48:15 +02:00
David Shah
02ae21d8fc
Add --placer option and refactor placer selection
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:10:20 +00:00
David Shah
fcc3bb1495
ecp5: Speedup cell delay lookups
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
bd12c0a486
HeAP: Add PlacerHeapCfg
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
7142db28a8
HeAP: Make HeAP placer optional
...
A CMake option 'BUILD_HEAP' (default on) configures building of the
HeAP placer and the associated Eigen3 dependency.
Default for the iCE40 is SA placer, with --heap-placer to use HeAP
Default for the ECP5 is HeAP placer, as SA placer can take 1hr+ for
large ECP5 designs and HeAP tends to give better QoR. --sa-placer can
be used to use SA instead, and auto-fallback to SA if HeAP not built.
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
2e2f44c82e
HeAP: tidying up
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
8295f997ae
HeAP: Use for ECP5 as well as iCE40
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
ea56dc9d08
HeAP: Add TAUCS wrapper and integration
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
df79d94944
ecp5: DELAY fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
95a85c8ea7
ecp5: Improve packing density
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
a0fa164399
ecp5: Add criticality-based LUT permutation
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
f363dd2d3c
ecp5: Delay tuning
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
4ec2bd1e5d
ecp5: Fix global clock routing with multiclock DPRAM
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
55b0b60d9d
ecp5: Router performance improvements
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
f5b11ce075
ecp5: Implement budget overrides for carry chains and SLICE muxes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
af3ff143be
ecp5: Improve delay model
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
998d055ea7
ecp5: Speed up timing analysis
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
68abcb365a
ecp5: Add ECLKSYNCB support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
52d1954d96
ecp5: Packing of ODDRX2F
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
63e1f02c65
ecp5: Helper functions for DQS and ECLK
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
db1666fc3d
ecp5: Add timing data for DQS-related cells
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
Miodrag Milanović
c52202233a
Merge branch 'master' into mmaped_chipdb
2019-02-12 18:53:20 +01:00
David Shah
565d5eed17
ecp5: Fix global routing performance
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-12 10:56:17 +00:00
Miodrag Milanovic
73f200fe74
Load chipdb from filesystem as option
2019-02-09 13:34:57 +01:00
David Shah
e929d221f3
ecp5: Adding DTR, OSCG, CLKDIVF, USRMCLK, JTAGG
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-08 12:34:22 +00:00
David Shah
c01bb88509
ecp5: Add IOLOGIC timing and bitstream; ODDR working
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-14 16:40:38 +00:00
David Shah
4e05d09397
Improve reporting of unknown cell types
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-29 19:26:23 +00:00
David Shah
3ae8b86003
ecp5: Adding mux support up to LUT6
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 17:27:23 +00:00
David Shah
1ae722272a
ecp5: clangformat timing changes
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:27:03 +00:00
David Shah
50b85da619
ecp5: Use speed-grade-specific delay estimate
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:26:28 +00:00
David Shah
13244e513b
ecp5: Fix db import, improve timing data debugging
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:26:28 +00:00
David Shah
ffe1166e33
ecp5: Post-rebase fix
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:26:28 +00:00
David Shah
3ecd440748
ecp5: Use new timing data
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:26:28 +00:00
David Shah
18813f2056
ecp5: Adding real timing data to database
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:26:28 +00:00
David Shah
02736d0680
ecp5: Add timing info for SERDES
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
e9fe444dc7
ecp5: Adding ancillary DCU bels
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
c5a3571a06
ecp5: Working on DCU
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
Eddie Hung
2d39cde17b
Merge remote-tracking branch 'origin/master' into timingapi
2018-11-13 12:12:11 -08:00
Eddie Hung
3b2b15dc4a
Merge pull request #107 from YosysHQ/router_improve
...
Major rewrite of "router1"
2018-11-13 11:39:51 -08:00
David Shah
959d163ba7
ecp5: Improve delay estimates
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-13 14:27:23 +00:00
David Shah
11579a1046
ecp5: EBR clocking fix
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
David Shah
8af86ff37d
ecp5: Update arch to new timing API
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
Miodrag Milanovic
0ad5197ff4
show 4th tresllis_io in tile bounds
2018-11-11 08:25:54 +01:00
David Shah
e005cc6754
ecp5: Add PLL support
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 19:52:41 +00:00
David Shah
1a06f4b2bd
ecp5: Adding DSP support
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-21 20:07:18 +01:00
David Shah
b5faa7ad10
ecp5: Implement ECP5 equivalent of c9059fc
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-21 17:15:34 +01:00
David Shah
1cde208090
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-16 14:37:58 +01:00
David Shah
8aac6db44b
ecp5: Add support for correct tile naming in all variants
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-16 14:37:24 +01:00
David Shah
3aa3f5d796
ecp5: Add DP16KD timing analysis
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-16 13:30:23 +01:00
David Shah
19f828c91c
ecp5: Dummy timing entry for BRAM
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-05 11:35:37 +01:00
David Shah
9ebec3b87f
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 18:20:14 +01:00
David Shah
3dfc5b864a
ecp5: Remove broken DRAM timing arc
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 17:51:36 +01:00
David Shah
ab063b2456
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 18:37:17 +01:00
David Shah
11cdc197bc
ecp5: Fix global buffer connectivity and timing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 18:29:23 +01:00
David Shah
c5f9a12bb1
ecp5: Global router produces a working bitstream
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 17:36:08 +01:00
David Shah
2a0bb2be29
ecp5: Integrate global router and debug naming
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 16:49:29 +01:00
David Shah
97b12fa741
ecp5: Add DCC Bels, fix global router post-rebase
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 16:09:21 +01:00
David Shah
30f122854a
ecp5: Helper function and arch tweaks for global router
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 16:06:30 +01:00
David Shah
39e79db854
ecp5: clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-19 17:12:03 +01:00
David Shah
1b3a201a54
ecp5: Fix delay heuristic
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-19 17:10:55 +01:00
David Shah
ec94848774
ecp5: Add cell delays
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-19 16:59:36 +01:00
David Shah
45bd0a8c72
Merge pull request #54 from daveshah1/ecp5_speedup
...
ecp5: Improving placement speed
2018-08-19 14:04:01 +01:00
David Shah
0b35cb4e60
ecp5: Flatten bel_to_cell for performance
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-18 19:04:32 +01: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
David Shah
5fe29922fd
ecp5: Speedup router with slightly better estimates
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-18 11:54:53 +02:00
Miodrag Milanovic
93a0d24560
Use settings for placer1 and router1
2018-08-09 18:39:10 +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
a3ae3f9791
ecp5: Update to use const IdStrings in place of PortPin/BelType
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-08 19:08:43 +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
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
Eddie Hung
f44a5fb904
clangformat
2018-08-06 17:35:23 -07:00
Eddie Hung
6768a5c03e
Add Arch::isIOCell() to ecp5 and generic
2018-08-06 17:17:39 -07:00
Eddie Hung
d0312514bd
Modify getBudgetOverride for generic and ecp5 too
2018-08-06 07:56:34 -07:00
Eddie Hung
8a6ff4b261
Modify getBudgetOverride for generic and ecp5 too
2018-08-05 22:33:14 -07:00
David Shah
736f2a0717
API change: Use CellInfo* and NetInfo* as cell/net handles (ECP5)
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-05 16:32: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
6ccf8629b5
Add Router1Cfg
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-02 13:58:23 +02:00
David Shah
0658759495
ecp5: Remove libtrellis link for bitstream gen
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-01 15:58:38 +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
fa4fb52665
ecp5: Making arch.cc compile
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-08-01 11:21:03 +02:00
Eddie Hung
92ec2cd138
clangformat for stuff I've touched
2018-07-31 20:57:36 -07: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
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
David Shah
f3127f7dfd
ecp5: Add Bel graphics
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-31 14:39:37 +02:00
Eddie Hung
a82f6f4105
Modify predictDelay signature
2018-07-30 21:51:30 -07: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
Clifford Wolf
0daffec2a0
Add predictDelay Arch API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 15:35:40 +02:00
Eddie Hung
d083451cd5
Update getBudgetOverride() for other arches
2018-07-26 22:31:16 -07:00
Eddie Hung
97e546041e
Revert "Remove Arch::getBudgetOverride()"
...
This reverts commit 749dae4ae5
.
2018-07-26 21:37:19 -07:00
Eddie Hung
749dae4ae5
Remove Arch::getBudgetOverride()
2018-07-25 23:02:31 -07:00
Eddie Hung
9d489e8198
Retry clangformat
2018-07-25 18:34:14 -07:00
Eddie Hung
7c8c13aba1
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-25 17:41:23 -07:00
David Shah
7a8e8999d2
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-25 19:45:38 +02:00
Miodrag Milanovic
790d7159bb
Fixed packing non pod
2018-07-25 17:42:32 +02:00
Eddie Hung
9382938661
Merge branch 'master' into redist_slack
2018-07-24 22:20:10 -07:00
David Shah
3931c84fed
ecp5: Architecture testing and fixing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 16:38:35 +02: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
Eddie Hung
9149012fd1
Merge remote-tracking branch 'origin/master' into redist_slack
2018-07-23 18:22:32 -07:00
David Shah
730e56e3dd
ecp5: Add some more PIO helper functions
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-23 19:15:59 +02:00
Eddie Hung
771edd1fda
Merge branch 'master' into redist_slack
2018-07-23 07:16:39 -07:00
Clifford Wolf
38962d0f02
clangformat
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 12:45:31 +02:00
David Shah
54d1b8adce
ecp5: Implement new Grid APIs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-23 10:53:07 +02:00
David Shah
987fdc1b29
ecp5: Adding new Bel pin API
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-22 17:07:38 +02:00
David Shah
38431bd420
ecp5: Fix regression following router update
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-22 16:55:10 +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
Eddie Hung
926c186ec7
Add Arch::getBudgetOverride() to eliminate hack for COUT
2018-07-21 13:05:09 -07:00
David Shah
c80934f953
ecp5: Add support for pin name constraints using 'LOC' attributes
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 16:01:53 +02:00
David Shah
2b86800c0f
ecp5: Adding a slow and conservative placement validity checker
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-17 16:18:06 +02:00
David Shah
e6725dcde4
ecp5: Build all chip types
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-17 12:46:25 +02:00
Sergiusz Bazanski
ade67ecf21
Revert "Move read methods to ReadMethods, remove some legacy access to Arch"
...
This reverts commit 3352ff4abb
.
2018-07-14 18:50:23 +01:00
Sergiusz Bazanski
cb1a5974f4
Revert "Make ECP5 proxy context compatible"
...
This reverts commit df5d7923ec
.
2018-07-14 18:50:18 +01:00
Sergiusz Bazanski
df5d7923ec
Make ECP5 proxy context compatible
2018-07-14 11:52:50 +01:00
Sergiusz Bazanski
3352ff4abb
Move read methods to ReadMethods, remove some legacy access to Arch
2018-07-14 11:46:32 +01:00
Clifford Wolf
b8a42ff53b
Updates from clang-format
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 22:04:13 +02:00
David Shah
a8a3ba2647
ecp5: Unbreaking groups
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-12 18:01:40 +02:00
Clifford Wolf
a436035424
Add Groups API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 17:22:29 +02:00
Clifford Wolf
7daa8524c8
Add ctx->place() API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:15:08 +02:00
Clifford Wolf
7df67c91b3
Add ctx->route() API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:04:09 +02:00
David Shah
35216298d5
ecp5: Update arch to use new graphics API
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 14:27:15 +02:00
David Shah
bad926bcc3
ecp5: Adding bitstream gen for pips and LUT init
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:42:09 +02:00
David Shah
de82ecad59
ecp5: Make target device 45k on account of current hardware access
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:42:09 +02:00
David Shah
981522b10e
ecp5: Blinky example places and routes
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:42:09 +02:00
David Shah
49f39b8d56
ecp5: Place design working, router now segfaults due to db issue
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:42:09 +02:00
David Shah
59cb1600d9
ecp5: Fixing arch bugs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:42:09 +02:00
David Shah
bb683d71d6
ecp5: Add 25k database
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:41:36 +02:00
David Shah
83303bae5a
ecp5: Implementing (at least stubs) most of arch.cc
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:41:36 +02:00
David Shah
7862d1b84b
ecp5: Implementing core arch.h functions
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:41:36 +02:00