forked from YosysHQ/nextpnr
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] master from YosysHQ:master #258
Open
pull
wants to merge
1,396
commits into
timvideos:master
Choose a base branch
from
YosysHQ:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for more complex PLL type setups, we might want a toposort or iterative loop as the PLL must be placednextpnr/fpga_interchange/globals.cc Lines 161 to 166 in 432b9d8
This comment was generated by todo based on a
|
substantial performance improvements are probably possible, although of questionable benefit givennextpnr/fpga_interchange/globals.cc Lines 200 to 205 in 432b9d8
This comment was generated by todo based on a
|
Slightly change the Gowin device selection mechanism for database generation. By default, nothing is generated as before. Signed-off-by: YRabbit <[email protected]>
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
This option can be empty, in which case the virtualenv is left exactly as it was in the build environment.
Signed-off-by: gatecat <[email protected]>
Now the clock router can place a buffer into the specified network, which divides the network into two parts: from the source to the buffer, routing occurs through any available PIPs, and after the buffer to the sink, only through a dedicated global clock network. This is made specifically for the Tangnano20k where the external oscillator is soldered to a regular non-clock pin. But it can be used for other purposes, you just need to remember that the recipient must be a CLK input or output pin. The port/network to set the buffer to is specified in the .CST file: CLOCK_LOC "name" BUFG; Signed-off-by: YRabbit <[email protected]>
Signed-off-by: YRabbit <[email protected]>
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
We add support right here so that later I don’t have to make patches to the ports. Signed-off-by: YRabbit <[email protected]>
Signed-off-by: YRabbit <[email protected]>
Signed-off-by: YRabbit <[email protected]>
Use himbaechel/gowin instead of himbaechel/gowin/gowin. Signed-off-by: YRabbit <[email protected]>
For GW2A-18 and GW1N-9 you need to specify the family in addition to partno. Signed-off-by: YRabbit <[email protected]>
Router 2 expects "update_route_delays" to be the first argument to `tmg.run`.
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
…r better interoperability with other synthesis tools and RTL languages
* Gowin. Fix the port check for connectivity. What happens is that it's not enough to check for a network, we also need to make sure that the network is functional: has src and sinks. And the style edits - they get automatically when I make sure to run clang-format10. Signed-off-by: YRabbit <[email protected]> * Gowin. Fix the port check for connectivity. What happens is that it's not enough to check for a network, we also need to make sure that the network is functional: has src and sinks Signed-off-by: YRabbit <[email protected]> --------- Signed-off-by: YRabbit <[email protected]>
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
* apicula: add support for magic sip pins * fix nullptr check * DDR fix by xiwang * WIP support for setting the iostd * add iostd
Signed-off-by: gatecat <[email protected]>
Signed-off-by: gatecat <[email protected]>
* Gowin. FFs placement. * Allow clusters to be created from FFs and LUTs; * Immediately create pass-through LUTs from free LUTs adjacent to FF - at the same time ensure alternating use of LUT inputs; * In case of constant networks, such pass-through LUTs are disconnected from networks altogether; * Allow FF to be placed directly into SSRAM slides - this is useful when using synchronous reading. Signed-off-by: YRabbit <[email protected]> * Gowin. Fix aux name creation Signed-off-by: YRabbit <[email protected]> * Gowin. Use I3 for pass-trough LUTs Signed-off-by: YRabbit <[email protected]> --------- Signed-off-by: YRabbit <[email protected]>
* Extend Himbaechel API with gfx drawing methods * Add bel drawing in example uarch * changed API and added tile wire id in db * extend API so we can distinguish CLK wires * added bit more wires * less horrid way of handling gfx ids * loop wire range * removed not needed brackets * bump database version to 5 * Removed not used GfxFlags
* Add expandBoundingBox method to API * Update API documentation
Add sampling part to IO blocks (input only). This edge detector will allow to dynamically adjust DDR decoding window in the future. Signed-off-by: YRabbit <[email protected]>
* Gowin. Add IODELAY. Input/Output delay (IODELAY) is programmable delay uint in IO block. This delay line is enabled before/after the IO pad and allows the signal to be delayed statically or dynamically during 0-127 stages each lasting from 18 to 30 picoseconds depending on the chip family. Signed-off-by: YRabbit <[email protected]> * Gowin. Replacing assertions with log_error. Signed-off-by: YRabbit <[email protected]> --------- Signed-off-by: YRabbit <[email protected]>
* ng-ultra: new architecture * Implementation as in D2 deliverable * Support for nxdesignsuite-24.0.0.0-20240429T102300 * Save memory by directly outputing json * Add support for bidirectional IOs * cleanup * Create BFRs properly * Add IOM insertion * Cleanup * Block certain pips depending of DDFR mode * Add LUT bypass to improve routability * Add bypass for CSC mode of GCK * Fix IOM case * Initial memory support * Better RF/XRF handling * fix * RF placement and legalization * Disconnect non available ports for NX_RAM * cleanup * Add RFB/RAM context support for latest release * Remove ports that must not be used * Proper port used only on RFB * Add structure for clock sinks * Use cell type where applicable * Add clock sinks for other cell types * Validation check fixes * Commented too restrictive placement * Added more crossbar wire type * Hande IO termination input * Fail early due to NX tools limitation for now * Validations and fixes for RAM I/Os * Fix for latest version of tools * Use ctx->idf where applicable * warn if RAM ports are not actually used * Fix IOM packing * Fix CY packing * Change how constants are handled on CY * Post placement optimization for CY * Address comments for PR * pack and export GCK, WFG and PLL * Cover more global routing cases * Constraing to location if provided * Place at LOC * Pack and export DSP * wip * wip * notes * wip * wip * Validate DSPs * DSP cascading * Check mandatory parameters for DSP * existing gck * wip * export all the rest for bitstream * CDC packing * add more sinks * place FIFO * map rest of FIFO ports * enable pll by default * cleanup * Initial XLUT support * Fix statistics * Properly duplicate GCKs * RRSTO and WRSTO are not used on XFIFO * Fix for latest version of JSON format * Implement GCK limitations * cleanup * cleanup * Add more signals and use lowskew name * cleanup code a bit * Fix wfb * detect cascaded GCKs * Handle DFR * Route dfr clock properly * Cleanup * Cleanup bitstream code * Review issues addressed * Move helper routines * Expose private members for unit tests * cleanup * remove scale factor * make all location helper arrays static * Addressed review comments * Support post-routing CSC and SCC * Support NX_BFF * Place CSS and SCC only on allowed locations * Support latest Impulse * ng_ultra: Expand bounding box further for left-edge IO Signed-off-by: gatecat <[email protected]> * Export all IO parameters in bitstream * Handle new CSV order or parameters and additional validation * Add some more undocumented values for CSV * Support for old and new CSV formats * Initial DDFR support * Display warning message once per file * Address review issues * Fix crash on memory access * Make boundbox fit NG-Ultra internal design * Update attributes after dff rewrite * Implement basic NG-Ultra LUT-DFF unit tests * Always use first seen xbar input Signed-off-by: gatecat <[email protected]> * Simplified crossbar pip detection * Change order to prevent issues with some unconnected constants * Pack LUT and multiple DFF in stripe * Place DFF chains * Improve large DFF chains * Rename to pack_dff_chains * Better use XLUTs when possible * pack output DFF together with XLUT * option to disable XLUT optimiziations * Make more optimizations optional * fix to use pre-increment * GCK for lowskew signals * Bugfix for nets that are not part of lowskew network * Fix bitstream export for PLL cell * Remove separate route lowskew * Allow WFG mode 2 * Merge inverter into GCK * Add CSC per TILE when needed * Improve reusage of existing cell for CSC * Take preferred CSC * Cleanup * When in place CSC size not important * Cleanup * Reset and Load restriction * make csc optimisation optional * Proper count for IO resources * Detect when there is no next cell for DSP chain * Do not incorporate loops in XLUT * Check if output exists * Update copyright for delivery * Make building NG-Ultra chip database optional, follow filename convention * Ported drawing code to new API * Update expandBoundingBox for NG-Ultra * Copyright and license update * Add README information * cleanup and constids * Using ctx->idf where applicable * remove if_using_basecluster * refactor extra data usage * refactor to use create_cell_ptr only * optimized getCSC * optimize critical path a bit * clangformat * disable clangformat where applicable --------- Signed-off-by: gatecat <[email protected]> Co-authored-by: Lofty <[email protected]> Co-authored-by: gatecat <[email protected]>
* Add GroupId related calls to Himbaechel API * Example uarch using new API features * Update drawGroup to propagate only GroupId
* Adds attributes to the hierarchical cells * python: add binding for hierarchical cells attributes * frontend/base: import hierarchical cells attributes
Adds additional restrictions on the first PIP after the clock source - only connections to SPINEs are allowed. This allowed to correct the behaviour of DQCEs since the latter can only disable/enable SPINEs. Signed-off-by: YRabbit <[email protected]>
* Gowin. Add the ability to place registers in IOB IO blocks have registers: for input, for output and for OutputEnable signal - IREG, OREG and TREG respectively. Each of the registers has one implicit non-switched wire, which one depends on the type of register (IREG has a Q wire, OREG has a D wire). Although the registers can be activated independently of each other they share the CLK, ClockEnable and LocalSetReset wires and this places restrictions on the possible combinations of register types in a single IO. Register placement in IO blocks is enabled by specifying the command line keys --vopt ireg_in_iob, --vopt oreg_in_iob, or --vopt ioreg_in_iob. It should be noted that specifying these keys leads to attempts to place registers in IO blocks, but no errors are generated in case of failure. Signed-off-by: YRabbit <[email protected]> * Gowin. Registers in IO Check for unconnected ports. Signed-off-by: YRabbit <[email protected]> * Gowin. IO regs. Verbose warnings. If an attempt to place an FF in an IO block fails, issue a warning detailing the reason for the failure, whether it is a register type conflict, a network requirement violation, or a control signal conflict. Signed-off-by: YRabbit <[email protected]> * Gowin. BUGFIX. Fix FFs compatibility. Flipflops with a fixed ClockEnable input cannot coexist with flipflops with a variable one. Signed-off-by: YRabbit <[email protected]> * Gowin. FFs in IO. Changing diagnostic messages. Placement modes are still specified by the command line keys ireg_in_iob/oreg_in_iob/ioreg_in_iob, but also introduces more granular control in the form of attributes at I/O ports: (* NOIOBFF *) - registers are never placed in this IO, (* IOBFF *) - registers must be placed in this IO, in case of failure a warning (not an error) with the reason for nonplacement is issued, _attribute_absence_ - no diagnostics will be issued: managed to place - good, failed - not bad either. Signed-off-by: YRabbit <[email protected]> * Gowin. Registers in IO. Change the logic for handling command line keys and attributes - attributes allow routines to be placed in IO regardless of global mode. Signed-off-by: YRabbit <[email protected]> * Gowin. Registers in IO. Fix style. Signed-off-by: YRabbit <[email protected]> --------- Signed-off-by: YRabbit <[email protected]>
…tile (#1413) Signed-off-by: gatecat <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )