diff --git a/docs/source/developers_guide/ipxact-design.md b/docs/source/developers_guide/ipxact-design.md new file mode 100644 index 00000000..902d6fe9 --- /dev/null +++ b/docs/source/developers_guide/ipxact-design.md @@ -0,0 +1,557 @@ +# IP-XACT format + +This document is an exploration of the [IP-XACT format](https://www.accellera.org/images/downloads/standards/ip-xact/IPXACT-2022_user_guide.pdf). + +All IP-XACT elements generated for the IR examples are located under `examples/ir_examples/[example]/ipxact/antmicro.com/[example]` where `antmicro.com/[example]` represents the [`vendor/library`](#vlnv). +They all conform to the 2022 version. + +## General observations + +### VLNV + +The IP-XACT format enforces the usage of VLNV (vendor, library, name, version) for every single design and component. + +```xml +antmicro.com +simple +lfsr_gen +1.2 +``` + +For now, Topwrap can only reliably handle the `name` value, while `vendor` and `version` are not used anywhere and their concept is unrecognised in the codebase. +Arguably, `library` could be represented by the name of a user repository. + +Special consideration needs to be taken for these values, as the XML schema defines specific allowed characters for some fields, while Topwrap doesn't sanity-check any fields that accept custom names. + +:::{warning} +Later in this document this group of four tags will be represented by `` to avoid repetition. +::: + +### Multiple versions + +There are many versions of the IP-XACT schema, as [visible here](http://www.accellera.org/XMLSchema/), on the official page of Accellera - developers of the format. + +Version before 2014 and after 2014 use two different XML namespaces for the tags, respectively: `spirit:` and `ipxact:`. + +Vivado seemingly only supports the 2009(!) specification version. + +This means the discrepancies between different versions and incompatibilities between tools must be taken into account. + +There are [official XSLT templates](https://www.accellera.org/downloads/standards/ip-xact) (bottom of the page) available that can convert any IP-XACT .xml file one version up, using an xslt tool like [`xsltproc`](https://linux.die.net/man/1/xsltproc). + +### Design structure + +The IP-XACT format revolves mainly around "components". +This is something that is closest to our `IPCoreDescription` class and its respective YAML schema: + +```xml + + + + + + + + ... + + + + + ... + + + + ... + + +``` + +A singular component represents a black-box, with the outside world seeing only its ports, buses and parameters. +In order to represent its inner design there needs to be a separate design XML file: + +```xml + + + + + ... + + + + gen2_gen_out_to_two_mux_gen2 + + + + + + ... + + +``` + +which later *is attached* to the component description under the instantiations section, thus making the design an optional property of a module/component. + +To describe a top-level wrapper you need both its description as a component, where the external IO is defined, and its design file that describes what other IPs are incorporated by this wrapper. + +### Parameter passing + +IP-XACT introduces a distinction between parameters of a component, and module parameters of the component's instantiation. + +This allows most IP-XACT objects to accept parameters that are only internal to them and are unrelated to the potentially generated RTL. +In order to define RTL module parameters, you need to specify them under two separate sections. + +Below is an example of defining a `paramWIDTH` parameter with default value of 64 in a component that gets realised in Verilog as `parameter WIDTH = 64;`: + +Take note of the top-level `` tag and the `` tag of the component instantiation. + +```xml + + + rtl + rtl + Verilog + + + WIDTH + WIDTH + paramWIDTH + + + + + + + paramWIDTH + paramWIDTH + 64 + + +``` + +In Topwrap, all IP parameters do get realised in the generated Verilog and there is no notion of internal parameters. + +### File sets + +Each component in IP-XACT can contain an section. +This is a very exhaustive section about one or more groups of *files* that this component depends on. +The type and purpose of every such file is marked, e.g: `verilogSource`. + +```xml + + + fs-rtl + + ../RTL/transmitter.v + verilogSource + transmitter_lib + + + +``` + +This concept currently only exists as a `--sources` CLI flag for `topwrap build` where all HDL sources are plainly forwarded to the FuseSoC .core. +There is no notion of other file dependencies inside IP Core description YAMLs. + +### Vendor extensions + +The IP-XACT format allows storing completely custom data inside most of the tags using the `` group. Topwrap could use them to store additional data about the IPs or designs. + +Example theoretical vendor extensions: + +```xml + + wishbone + + builtin + +``` + +### Catalogs + +Catalogs describe the location and the VLNV identifier of other IP-XACT elements such as components, designs, buses etc. in order to manage and allow access to collections of IP-XACT files. +In most cases defining a catalog is not required as all necessary files are automatically located by the used tool. + +```xml + + + + + + ./antmicro.com/simple/lfsr/lfsr.1.0.xml + + + + ... + + ... + +``` + +## [Simple example](./ir-examples.md#simple) + +This is the simplest IP-XACT example as it contains only plain IP cores with standalone ports, and parameters. + +### Instance names + +Since Topwrap doesn't verify any user-defined names, an accidental creation of a `2mux.yaml` IP Core named `2mux_compressor` instantiated with a `2mux` name, was possible in the YAML format. +Many environments, IP-XACT included, don't actually allow users to start custom names with a number. +The instance name of `2mux` had to be changed to `two_mux` for this purpose. + +### Parameters + +The special syntax of IP-XACT parameters is mostly explained in the [](#parameter-passing) section. + +#### Variable widths + +If you look at either `ips/2mux.yaml` or `ips/lfsr_gen.yaml` you'll see that there are ports with widths defined by the parameters inside an arithmetic expression: + +```yaml +# ips/2mux.yaml +out: + - [out, OUT_WIDTH-1, 0] +``` + +This is easily realisable in IP-XACT because just like our port widths, they also accept arbitrary arithmetic expressions that can reference other parameters inside them: + +(port-def)= +```xml + + out + + out + + + paramOUT_WIDTH - 1 + 0 + + + + +``` + +### Duality of the design description + +The design of the [](./ir-examples.md#simple) example is defined (from the Topwrap's perspective) purely in the `design.yaml` file. This is not so simple in IP-XACT, see [](#design-structure). + +Mostly this means that the "external" section of our design YAML lands in its own component/IP file and the connections and module instances in a separate one that is attached to the component file as a "design instantiation". + +The generated top-level component for this example and its design (`top.design.1.0.xml`) are located inside the `top` directory in the IP-XACT library. + +Additionally a "design configuration" file is generated that contains additional configuration information for the main design file. Not much is specified there for this example though. + +So finally the original `design.yaml` ends up becoming 3 interconnected .xml files in IP-XACT. + +### Connections + +Port connections between IP cores, and IP cores and externals are all specified in the XML design file. +There isn't much special about them, they are represented very similarly to our design description yaml connections: + +```xml + + gen2_gen_out_to_two_mux_gen2 + + + + + +``` + +## [Interface example](./ir-examples.md#interface) + +The key thing about this example is that it uses an interface connection (AXI 4 Stream) between two IPs, an inout port, a constant value supplied to a port and [](../description_files.md#port-slicing). + +:::{info} +An interface is a named, predefined collection of logical signals used to transfer information between different IPs or other building blocks. +Common interface types include: Wishbone, AXI, AHB, and more. + +Topwrap, like SystemVerilog, refers to this concept as an "interface". + +IP-XACT refers to the same concept as a "bus". +::: + +### Bus definitions + +Custom interfaces in Topwrap are defined using [](../description_files.md#interface-description-files). + +Custom interfaces are well recognized and supported in IP-XACT. +They are represented by two files, a "bus definition" that defines the existence of the interface/bus itself, its name and configurable parameters; and an "abstraction definition" that defines the logical signals of the interface. + +It's possible to have more than one abstraction definition for a given bus definition. + +Often times the necessary definitions for a given interface are already publicly available. +For example, the IP-XACT bus definitions of all ARM AMBA interfaces are available [here](https://developer.arm.com/Architectures/AMBA#Downloads) in the 2009 version of IP-XACT. +For this document, they were up-converted to the 2022 version with the help of [XSLT templates](#multiple-versions). + +#### Format + +If not, a custom definition has to be created. +Starting with the bus definition: + +```xml + + + This is the AXI4Stream stream bus definition. + true + false + +``` + +VLNV entries and description are both present at the start, like in all other IP-XACT definitions. Then there are two configuration bools: +- `` decides if this bus allows direct connection between a manager/initiator and subordinate/targets. Important for "asymmetric buses such as AHB". +- `` decides if this bus is addressable using the address space of the manager side of the bus. e.g. `true` for AXI4, `false` for AXI4Stream. + +Then to specify the logical signals of the interface, an abstraction definition has to be created: + +```xml + + + This is an RTL Abstraction of the AMBA4/AXI4Stream + + + + TREADY + indicates that the Receiver can accept a transfer in the current cycle. + + + optional + 1 + in + + + optional + 1 + out + + 1 + + + + +``` + +This is a fragment of the `TREADY` signal definition of the AXI 4 Stream interface. + +There's the classic VLNV + Description combo at the start, then the associated bus definition is referenced and lastly the signals of the interface are defined. + +In IP-XACT, unlike in Topwrap, you can specify different options for signals on both the manager and the subordinate separately, importantly a signal can be required on one side of the bus while being optional on the other. This is currently impossible to represent in Topwrap. The width specification and the default value are not supported either by Topwrap. + +Moreover, unlike in Topwrap, in IP-XACT the clock and reset signals are also specified in the definition alongside other signals. They are however marked with special qualifiers that distinguish their roles and enforce certain behaviours. + +Example qualifiers: + +```xml + + + true + true + + +``` + +:::{info} +While Topwrap uses the `manager` and `subordinate` terms to refer to the roles an IP can assume in the bus connection, IP-XACT pre-2022 uses `master`, `slave` and IP-XACT 2022-onwards uses `initiator` and `target` respectively. +::: + +#### Interface deduction + +Topwrap supports specifying both a regex for each signal and the port prefix for the entire interface in order to [automatically group raw ports](../description_files.md#interface-deduction) from HDL sources into interfaces. None of that is possible to represent in IP-XACT, though this information can be stored anyways using [](#vendor-extensions). + +### Bus instantiation + +To use the bus inside a component definition you have to: ++ Add all the physical ports that will get used as the bus signals just like regular [ad-hoc ports](#port-def) ++ Map these physical ports to logical ports of the interface + +#### The portMap format + +```yaml +interfaces: + io: + type: AXI4Stream + mode: subordinate + signals: + in: + TDATA: [dat_i, 31, 0] +``` + +This fragment of [](../description_files.md#design-description) would translate to the below IP-XACT description, assuming the `dat_i` signal was previously defined in the ad-hoc ports section. + +```xml + + + io + + + + + + + + TDATA + + + dat_i + + + + + + + + +``` + +The `` tag is a direct child of the top-level `` tag. + +[](../description_files.md#port-slicing) is supported as well: + +```xml + + ctrl_i + + + 4 + 4 + + + +``` + +### Inout ports + +This example contains an external inout port raised from one of the IPs. +While the [Topwrap syntax](../description_files.md#design-description) for specifying inout ports in a design is a bit awkward, in IP-XACT inout ports are represented just like ports with other directions. + +### Constant assignments + +This example also features a constant value (2888) assigned to the `noise` port of the `receiver` IP instead of any wire. In IP-XACT this is done similarly to [](#connections): + +```xml + + receiver_0_noise_to_tiedValue + 2888 + + + + +``` + +Additionally, the `tiedValue` can be given by an arithmetic expression that resolves to a constant value. + + +## [Hierarchical example](./ir-examples.md#hierarchical) + +The hierarchical example features deeply nested hierarchies. +The purpose of a hierarchical design is to group together into separate levels/modules, connections that could just as well be realised flatly in the top-level. + +In Topwrap, all hierarchies are specified in the respective [design description file](../description_files.md#hierarchies) YAML using a special syntax that allows multiple design descriptions to be nested together in a single file. + +IP-XACT has no notion of any special syntax for hierarchies, because it doesn't need to. Due to the [architecture of design XMLs](#design-structure) being extensions to component XMLs, it's possible to just generate a component+design pair for every hierarchy and connect them just as if they were regular IPs that happen to have a design available alongside them. This is exactly what was done to represent this example. + + +## [Interconnect example](./ir-examples.md#interconnect) + +This example features the [](../interconnect_gen.md) functionality of Topwrap. + +Specifying interconnects in the Topwrap design description implies dynamic generation of necessary arbiters and bus components during build-time using parameters defined under the interconnect instance key. + +IP-XACT doesn't support such functionality because it's just a file format and it doesn't necessarily have any dynamic code associated with it. + +Conversion from Topwrap -> IP-XACT should probably just generate the interconnect bus component with the required amount of manager and subordinate ports and package it alongside the generated RTL implementation of routers and arbiters. + +Reverse conversion (from the concrete generated IP-XACT interconnect to Topwrap's interconnect entry) is probably impossible, we can't know the interconnect specifics to know which type to pick after it's already generated. +However, all this necessary information could be stored in a vendor extension. + +### The interconnect component + +The generated interconnect is located in `./antmicro.com/interconnect/interconnect/wishbone_interconnect1.xml`. +As mentioned, it has just enough interface ports to connect the two specified managers and two subordinates. + +The Wishbone interface definition from `opencores.org` was used. + +The main difference that differentiates the interconnect component from raw interface connections like in the [](#interface-example) is the explicit definition and mapping of the address space with the `` tag and assignment of each manager port to one or more subordinates. + +The extensions used in the bus instance element in the component definition. +Focus on the `ipxact:addressSpaceRef` tag where the base address of this subordinate is specified: + +```xml + + target_1 + + + ... + + + + 'h10000 + + + +``` + +The extension used at the top-level in the component definition to map the address space: + +```xml + + + address + 2**32/8-1 + 8 + + + mem + 'h0 + 'hFFFF+1 + + + dsp + 'h10000 + 'hFF+1 + + + 8 + + +``` + +The assignment of a manager port to specified subordinates(targets): + +```xml + + manager0 + + + + + + + +``` + +### External interface + +In the Topwrap definition of this example, a `wishbone_passthrough` IP core is used in order to allow the external interface to be connected as a manager to the interconnect. This is due to limitations of the schema and the fact that under the `managers` key Topwrap expects the IP instance name with the specified manager port, completely disregarding the possibility of it being external. + +## [Other features](./ir-examples.md#other) + +### Dynamic number of ports/interfaces based on a parameter + +This is not possible in IP-XACT. +All ports/interfaces and connections need to be explicitly defined. +While the amount of bits in a port can vary based on a parameter value, as was presented in [](#variable-widths), higher level concepts such as the number of ports cannot. + +## Conclusion + +In most aspects IP-XACT is a superset of what's possible to describe in Topwrap, making the Topwrap -> IP-XACT conversion pretty trivial. + +Syntax impossible to represent natively in IP-XACT such as: +- Abstract interconnects without concrete implementation +- Interface signal name regexes and port prefixes (see [](../description_files.md#interface-deduction)) + +can even if not implemented, be at least preserved using [](#vendor-extensions). + +Other visible issue for this conversion are: +- [](#vlnv) being mandatory for IP-XACT files, but Topwrap containing only the name information +- Lack of input sanitization of string fields on Topwrap's side + +On the other hand, the conversion from a generic IP-XACT file to Topwrap's internal representation may prove more tricky and definitely suffer from information loss as the IP-XACT format is packed with more features and elements that are not exactly useful for our purposes and were not even mentioned in this document at all. diff --git a/docs/source/index.md b/docs/source/index.md index 36db9987..f38c0b05 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -34,4 +34,5 @@ developers_guide/examples developers_guide/future_enhancements developers_guide/inline_kpm_howto developers_guide/ir-examples +developers_guide/ipxact-design ``` diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/adder/1.0/adder.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/adder/1.0/adder.1.0.xml new file mode 100644 index 00000000..d632d4a9 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/adder/1.0/adder.1.0.xml @@ -0,0 +1,69 @@ + + + antmicro.com + hierarchical + adder + 1.0 + + + + rtl + rtl + Verilog + + + WIDTH + WIDTH + uuid_8beee66a_d8c9_4181_ab5d_84c3f023121f + + + + + + + a + + in + + + uuid_8beee66a_d8c9_4181_ab5d_84c3f023121f-1 + 0 + + + + + + b + + in + + + uuid_8beee66a_d8c9_4181_ab5d_84c3f023121f-1 + 0 + + + + + + sum + + out + + + uuid_8beee66a_d8c9_4181_ab5d_84c3f023121f-1 + 0 + + + + + + + + + paramWIDTH + paramWIDTH + 4 + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/d_ff/1.0/d_ff.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/d_ff/1.0/d_ff.1.0.xml new file mode 100644 index 00000000..980e8ab6 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/d_ff/1.0/d_ff.1.0.xml @@ -0,0 +1,72 @@ + + + antmicro.com + hierarchical + d_ff + 1.0 + + + + rtl + + + WIDTH + uuid_ca41c6da_3afa_4234_90d0_1e1bbbddf75d + + + + + + + clk + + in + + + + rst + + in + + + + + + + + + + D + + in + + + uuid_ca41c6da_3afa_4234_90d0_1e1bbbddf75d-1 + 0 + + + + + + Q + + out + + + uuid_ca41c6da_3afa_4234_90d0_1e1bbbddf75d-1 + 0 + + + + + + + + + paramWIDTH + paramWIDTH + 4 + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/debouncer/1.0/debouncer.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/debouncer/1.0/debouncer.1.0.xml new file mode 100644 index 00000000..56cc0519 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/debouncer/1.0/debouncer.1.0.xml @@ -0,0 +1,47 @@ + + + antmicro.com + hierarchical + debouncer + 1.0 + + + + rtl + + + GRACE + uuid_ac02ea4d_0441_4d05_a057_75c85f832a3f + + + + + + + clk + + in + + + + in + + in + + + + filtered_out + + out + + + + + + + paramGRACE + 1000 + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.1.0.xml new file mode 100644 index 00000000..899cc0e8 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.1.0.xml @@ -0,0 +1,59 @@ + + + antmicro.com + hierarchical + encoder + 1.0 + + + + hierarchical + _design_configuration + + + + + _design_configuration + + + + + + number + + in + + + + + clk + + in + + + + + enc0 + + out + + + + + enc1 + + out + + + + + enc2 + + out + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.design.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.design.1.0.xml new file mode 100644 index 00000000..154ce6bf --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.design.1.0.xml @@ -0,0 +1,8 @@ + + + antmicro.com + hierarchical + encoder.design + 1.0 + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.designcfg.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.designcfg.1.0.xml new file mode 100644 index 00000000..4b95d69d --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/encoder/1.0/encoder.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + hierarchical + encoder.designcfg + 1.0 + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.1.0.xml new file mode 100644 index 00000000..91c5815c --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.1.0.xml @@ -0,0 +1,45 @@ + + + antmicro.com + hierarchical + four_bit_counter + 1.0 + + + + hierarchical + _design_configuration + + + + + _design_configuration + + + + + + impulse + + in + + + + + rst + + in + + + + + sum + + out + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.design.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.design.1.0.xml new file mode 100644 index 00000000..97228558 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.design.1.0.xml @@ -0,0 +1,64 @@ + + + antmicro.com + hierarchical + four_bit_counter.design + 1.0 + + + d_ff_0 + + + + + adder_0 + + + + + + + d_ff_0_D_to_adder_0_sum + + + + + + + d_ff_0_Q_to_sum + + + + + + + d_ff_0_clk_to_impulse + + + + + + + d_ff_0_rst_to_rst + + + + + + + adder_0_a_to_d_ff_0_Q + + + + + + + adder_0_b_to_impulse + + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.designcfg.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.designcfg.1.0.xml new file mode 100644 index 00000000..84a16d7c --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/four_bit_counter/1.0/four_bit_counter.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + hierarchical + four_bit_counter.designcfg + 1.0 + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.1.0.xml new file mode 100644 index 00000000..32984660 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.1.0.xml @@ -0,0 +1,66 @@ + + + antmicro.com + hierarchical + proc + 1.0 + + + + hierarchical + _design_configuration + + + + + _design_configuration + + + + + + btn + + in + + + + + clk + + in + + + + + rst + + in + + + + + enc0 + + out + + + + + enc1 + + out + + + + + enc2 + + out + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.design.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.design.1.0.xml new file mode 100644 index 00000000..b881cdd7 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.design.1.0.xml @@ -0,0 +1,90 @@ + + + antmicro.com + hierarchical + proc.design + 1.0 + + + debouncer_0 + + + + + encoder + + + + + four_bit_counter + + + + + + + debouncer_0_clk_to_clk + + + + + + + debouncer_0_in_to_btn + + + + + + + debouncer_0_filtered_out_to_four_bit_counter_impulse + + + + + + + four_bit_counter_rst_to_rst + + + + + + + encoder_clk_to_clk + + + + + + + encoder_enc0_to_enc0 + + + + + + + encoder_enc1_to_enc1 + + + + + + + encoder_enc2_to_enc2 + + + + + + + encoder_number_to_four_bit_counter_sum + + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.designcfg.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.designcfg.1.0.xml new file mode 100644 index 00000000..97a1a6f3 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/proc/1.0/proc.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + hierarchical + proc.designcfg + 1.0 + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.1.0.xml new file mode 100644 index 00000000..5d0e4bc7 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.1.0.xml @@ -0,0 +1,66 @@ + + + antmicro.com + hierarchical + top + 1.0 + + + + hierarchical + top.designcfg_1.0 + + + + + top.designcfg_1.0 + + + + + + clk + + in + + + + + rst + + in + + + + + btn + + in + + + + + disp0 + + out + + + + + disp1 + + out + + + + + disp2 + + out + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.design.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.design.1.0.xml new file mode 100644 index 00000000..c020a959 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.design.1.0.xml @@ -0,0 +1,59 @@ + + + antmicro.com + hierarchical + top.design + 1.0 + + + proc + + + + + + + proc_btn_to_btn + + + + + + + proc_rst_to_rst + + + + + + + proc_clk_to_clk + + + + + + + proc_enc0_to_disp0 + + + + + + + proc_enc1_to_disp1 + + + + + + + proc_enc2_to_disp2 + + + + + + + + diff --git a/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.designcfg.1.0.xml b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.designcfg.1.0.xml new file mode 100644 index 00000000..0febf342 --- /dev/null +++ b/examples/ir_examples/hierarchical/ipxact/antmicro.com/hierarchical/top/1.0/top.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + hierarchical + top.designcfg + 1.0 + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/cpu/1.0/cpu.1.0.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/cpu/1.0/cpu.1.0.xml new file mode 100644 index 00000000..4e3e2ae4 --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/cpu/1.0/cpu.1.0.xml @@ -0,0 +1,242 @@ + + + antmicro.com + interconnect + cpu + 1.0 + + + bus_manager + + + + + + + + ack + + 0 + 0 + + + + i_wb_ack + + + 0 + 0 + + + + + + + cyc + + 0 + 0 + + + + o_wb_cyc + + + 0 + 0 + + + + + + + stb + + 0 + 0 + + + + o_wb_stb + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + i_wb_err + + + 0 + 0 + + + + + + + adr + + + o_wb_adr + + + + + stall + + 0 + 0 + + + + i_wb_stall + + + 0 + 0 + + + + + + + dat_sm + + + i_wb_dat + + + + + dat_ms + + + o_wb_dat + + + + + we + + 0 + 0 + + + + o_wb_we + + + 0 + 0 + + + + + + + + + + + + + + clk + + in + + + + rst + + in + + + + i_wb_ack + + in + + + + o_wb_cyc + + out + + + + o_wb_stb + + out + + + + o_wb_adr + + out + + + 31 + 0 + + + + + + o_wb_dat + + out + + + 7 + 0 + + + + + + o_wb_we + + out + + + + i_wb_dat + + in + + + 7 + 0 + + + + + + i_wb_stall + + in + + + + i_wb_err + + in + + + + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/dsp/1.0/dsp.1.0.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/dsp/1.0/dsp.1.0.xml new file mode 100644 index 00000000..ef036cf0 --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/dsp/1.0/dsp.1.0.xml @@ -0,0 +1,242 @@ + + + antmicro.com + interconnect + dsp + 1.0 + + + bus + + + + + + + + ack + + 0 + 0 + + + + i_wb_ack + + + 0 + 0 + + + + + + + cyc + + 0 + 0 + + + + o_wb_cyc + + + 0 + 0 + + + + + + + stb + + 0 + 0 + + + + o_wb_stb + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + i_wb_err + + + 0 + 0 + + + + + + + adr + + + o_wb_adr + + + + + stall + + 0 + 0 + + + + i_wb_stall + + + 0 + 0 + + + + + + + dat_sm + + + i_wb_dat + + + + + dat_ms + + + o_wb_dat + + + + + we + + 0 + 0 + + + + o_wb_we + + + 0 + 0 + + + + + + + + + + + + + + clk + + in + + + + rst + + in + + + + i_wb_ack + + out + + + + o_wb_cyc + + in + + + + o_wb_stb + + in + + + + o_wb_adr + + in + + + 31 + 0 + + + + + + o_wb_dat + + in + + + 7 + 0 + + + + + + o_wb_we + + in + + + + i_wb_dat + + out + + + 7 + 0 + + + + + + i_wb_stall + + out + + + + i_wb_err + + out + + + + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/interconnect/wishbone_interconnect1.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/interconnect/wishbone_interconnect1.xml new file mode 100644 index 00000000..ccf7a471 --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/interconnect/wishbone_interconnect1.xml @@ -0,0 +1,933 @@ + + + antmicro.com + interconnect + wishbone_interconnect1 + 1.0 + + + manager0 + + + + + + + + ack + + + ack_manager_0 + + + + + adr + + + adr_manager_0 + + + + + cyc + + 0 + 0 + + + + cyc_manager_0 + + + 0 + 0 + + + + + + + dat_sm + + + dat_sm_manager_0 + + + + + dat_ms + + + dat_ms_manager_0 + + + + + stb + + 0 + 0 + + + + stb_manager_0 + + + 0 + 0 + + + + + + + we + + 0 + 0 + + + + we_manager_0 + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + err_manager_0 + + + 0 + 0 + + + + + + + + + + + + + + manager1 + + + + + + + + ack + + + ack_manager_1 + + + + + adr + + + adr_manager_1 + + + + + cyc + + 0 + 0 + + + + cyc_manager_1 + + + 0 + 0 + + + + + + + dat_sm + + + dat_sm_manager_1 + + + + + dat_ms + + + dat_ms_manager_1 + + + + + stb + + 0 + 0 + + + + stb_manager_1 + + + 0 + 0 + + + + + + + we + + 0 + 0 + + + + we_manager_1 + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + err_manager_1 + + + 0 + 0 + + + + + + + + + + + + + + target_0 + + + + + + + + ack + + + ack_target_0 + + + + + adr + + + adr_target_0 + + + + + cyc + + 0 + 0 + + + + cyc_target_0 + + + 0 + 0 + + + + + + + dat_sm + + + dat_sm_target_0 + + + + + dat_ms + + + dat_ms_target_0 + + + + + stb + + 0 + 0 + + + + stb_target_0 + + + 0 + 0 + + + + + + + we + + 0 + 0 + + + + we_target_0 + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + err_target_0 + + + 0 + 0 + + + + + + + + + + 0 + + + + + target_1 + + + + + + + + ack + + + ack_target_1 + + + + + adr + + + adr_target_1 + + + + + cyc + + 0 + 0 + + + + cyc_target_1 + + + 0 + 0 + + + + + + + dat_sm + + + dat_sm_target_1 + + + + + dat_ms + + + dat_ms_target_1 + + + + + stb + + 0 + 0 + + + + stb_target_1 + + + 0 + 0 + + + + + + + we + + 0 + 0 + + + + we_target_1 + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + err_target_1 + + + 0 + 0 + + + + + + + + + + 'h10000 + + + false + + + + + address + 2**32/8-1 + 8 + + + mem + 'h0 + 'hFFFF+1 + + + dsp + 'h10000 + 'hFF+1 + + + 8 + + + + + + rtl + Verilog + wishbone_interconnect + + + + + ack_target_0 + + in + + + 0 + 0 + + + + + + dat_sm_target_0 + + in + + + 7 + 0 + + + + + + adr_target_0 + + out + + + 31 + 0 + + + + + + cyc_target_0 + + out + + + 0 + 0 + + + + + + dat_ms_target_0 + + out + + + 7 + 0 + + + + + + stb_target_0 + + out + + + 0 + 0 + + + + + + we_target_0 + + out + + + 0 + 0 + + + + + + err_target_0 + + in + + + 0 + 0 + + + + + + ack_target_1 + + in + + + 0 + 0 + + + + + + dat_sm_target_1 + + in + + + 7 + 0 + + + + + + adr_target_1 + + out + + + 31 + 0 + + + + + + cyc_target_1 + + out + + + 0 + 0 + + + + + + dat_ms_target_1 + + out + + + 7 + 0 + + + + + + stb_target_1 + + out + + + 0 + 0 + + + + + + err_target_1 + + in + + + 0 + 0 + + + + + + we_target_1 + + out + + + 0 + 0 + + + + + + ack_manager_0 + + out + + + 0 + 0 + + + + + reg + + + + + + dat_sm_manager_0 + + out + + + 7 + 0 + + + + + reg + + + + + + adr_manager_0 + + in + + + 31 + 0 + + + + + + cyc_manager_0 + + in + + + 0 + 0 + + + + + + dat_ms_manager_0 + + in + + + 7 + 0 + + + + + + stb_manager_0 + + in + + + 0 + 0 + + + + + + we_manager_0 + + in + + + 0 + 0 + + + + + + err_manager_0 + + out + + + 0 + 0 + + + + + reg + + + + + + ack_manager_1 + + out + + + 0 + 0 + + + + + reg + + + + + + dat_sm_manager_1 + + out + + + 7 + 0 + + + + + reg + + + + + + adr_manager_1 + + in + + + 31 + 0 + + + + + + cyc_manager_1 + + in + + + 0 + 0 + + + + + + dat_ms_manager_1 + + in + + + 7 + 0 + + + + + + stb_manager_1 + + in + + + 0 + 0 + + + + + + we_manager_1 + + in + + + 0 + 0 + + + + + + err_manager_1 + + out + + + 0 + 0 + + + + + reg + + + + + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/mem/1.0/mem.1.0.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/mem/1.0/mem.1.0.xml new file mode 100644 index 00000000..6d2bae29 --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/mem/1.0/mem.1.0.xml @@ -0,0 +1,242 @@ + + + antmicro.com + interconnect + mem + 1.0 + + + bus + + + + + + + + ack + + 0 + 0 + + + + i_wb_ack + + + 0 + 0 + + + + + + + cyc + + 0 + 0 + + + + o_wb_cyc + + + 0 + 0 + + + + + + + stb + + 0 + 0 + + + + o_wb_stb + + + 0 + 0 + + + + + + + err + + 0 + 0 + + + + i_wb_err + + + 0 + 0 + + + + + + + adr + + + o_wb_adr + + + + + stall + + 0 + 0 + + + + i_wb_stall + + + 0 + 0 + + + + + + + dat_sm + + + i_wb_dat + + + + + dat_ms + + + o_wb_dat + + + + + we + + 0 + 0 + + + + o_wb_we + + + 0 + 0 + + + + + + + + + + + + + + clk + + in + + + + rst + + in + + + + i_wb_ack + + out + + + + o_wb_cyc + + in + + + + o_wb_stb + + in + + + + o_wb_adr + + in + + + 31 + 0 + + + + + + o_wb_dat + + in + + + 7 + 0 + + + + + + o_wb_we + + in + + + + i_wb_dat + + out + + + 7 + 0 + + + + + + i_wb_stall + + out + + + + i_wb_err + + out + + + + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.1.0.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.1.0.xml new file mode 100644 index 00000000..100c20cc --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.1.0.xml @@ -0,0 +1,124 @@ + + + antmicro.com + interconnect + top + 1.0 + + + ext_manager + + + + + + + + ack + + 0 + 0 + + + + ack + + + 0 + 0 + + + + + + + cyc + + 0 + 0 + + + + cyc + + + 0 + 0 + + + + + + + stb + + 0 + 0 + + + + stb + + + 0 + 0 + + + + + + + + + + + + + + hierarchical + _design_configuration + + + + + _design_configuration + + + + + + clk + + in + + + + + rst + + in + + + + + ack + + out + + + + cyc + + in + + + + stb + + in + + + + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.design.1.0.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.design.1.0.xml new file mode 100644 index 00000000..08ed3a70 --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.design.1.0.xml @@ -0,0 +1,96 @@ + + + antmicro.com + interconnect + top.design + 1.0 + + + cpu_0 + + + + + mem_0 + + + + + wishbone_interconnect1_0 + + + + + dsp_0 + + + + + + + cpu_0_bus_manager_to_wishbone_interconnect1_0_manager0 + + + + + wishbone_interconnect1_0_manager1_to_ext_manager + + + + + wishbone_interconnect1_0_target_0_to_mem_0_bus + + + + + dsp_0_bus_to_wishbone_interconnect1_0_target_1 + + + + + + + cpu_0_clk_to_clk + + + + + + + cpu_0_rst_to_rst + + + + + + + mem_0_clk_to_clk + + + + + + + dsp_0_clk_to_clk + + + + + + + dsp_0_rst_to_rst + + + + + + + mem_0_rst_to_rst + + + + + + + + diff --git a/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.designcfg.1.0.xml b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.designcfg.1.0.xml new file mode 100644 index 00000000..59648191 --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/antmicro.com/interconnect/top/1.0/top.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + interconnect + top.designcfg + 1.0 + + + diff --git a/examples/ir_examples/interconnect/ipxact/opencores.org/interface/wishbone_b4.xml b/examples/ir_examples/interconnect/ipxact/opencores.org/interface/wishbone_b4.xml new file mode 100644 index 00000000..674cf20d --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/opencores.org/interface/wishbone_b4.xml @@ -0,0 +1,19 @@ + + + opencores.org + interface + wishbone + b4 + Specification of wishbone bus is available at: http://cdn.opencores.org/downloads/wbspec_b4.pdf + +Clock and reset signals are not specifically master-to-slave signals nor vice versa, but instead they come from a third party that assumes neither mode. + +Notice that while multiple slaves and masters are supported, broadcasts are not. Thus an arbiter will be required, unless it is a single master to single slave connection. + true + false + true + + ClockSource + ClockSink + + diff --git a/examples/ir_examples/interconnect/ipxact/opencores.org/interface/wishbone_b4_def.xml b/examples/ir_examples/interconnect/ipxact/opencores.org/interface/wishbone_b4_def.xml new file mode 100644 index 00000000..09aadbfb --- /dev/null +++ b/examples/ir_examples/interconnect/ipxact/opencores.org/interface/wishbone_b4_def.xml @@ -0,0 +1,273 @@ + + + opencores.org + interface + wishbone.absDef + b4 + + + + ack + Slave indicates normal termination of bus cycle + + + required + 1 + in + + + required + 1 + out + + + + + adr + Address of slave, accessed by master. Not needed in fifo communication. + + + true + + + optional + out + + + optional + in + + + + + cyc + A valid bus cycle is in progress, when asserted. + + + required + 1 + out + + + required + 1 + in + + + + + dat_sm + Data from slave to master. + + + true + + + optional + in + + + optional + out + + + + + dat_ms + Data from master to slave. + + + true + + + optional + out + + + optional + in + + + + + err + Slave indicates abnormal cycle termination. Cause for this is defined by IP supplier. + + + optional + 1 + in + + + optional + 1 + out + + + + + rty + Interface is not ready to send or receive, cycle should be retried. + + + optional + 1 + in + + + optional + 1 + out + + + + + sel + Used to select where data valid is in dat_sm or dat_ms, in read or write respectively. + + + optional + out + + + optional + in + + + + + stb + Strobe of a slave is asserted when it is indicated that the slave is selected. + + + required + 1 + out + + + required + 1 + in + + + + + we + Write enable: Negated during READ cycles and asserted during WRITE cycles. + + + optional + 1 + out + + + optional + 1 + in + + + + + stall + Indicates that slave does not accept additional transactions in its queue. Used in pipelined mode. + + + optional + 1 + in + + + optional + 1 + out + + + + + lock + Lock the slave for single master + + + optional + 1 + out + + + optional + 1 + out + + + + + rst + Reset for reset cycle + + + true + + + ClockSink + required + 1 + in + + + ClockSource + required + 1 + out + + + + + clk + Clock to phase the bus cycles. + + + true + + + ClockSink + required + 1 + in + + + ClockSource + required + 1 + out + + + + + tga + Cycle tag type, used to tag bus cycle. + + + optional + out + + + optional + out + + + + + tgc + Address tag type, contains information associated with address lines. + + + optional + out + + + optional + out + + + + + diff --git a/examples/ir_examples/interface/ips/receiver.yaml b/examples/ir_examples/interface/ips/receiver.yaml index a168d807..fe265bb0 100644 --- a/examples/ir_examples/interface/ips/receiver.yaml +++ b/examples/ir_examples/interface/ips/receiver.yaml @@ -15,3 +15,8 @@ interfaces: signals: in: TDATA: [dat_i, 31, 0] + + # PORT SLICING + # reversed situation from streamer.yaml + TVALID: [ctrl_i, 4, 0, 4, 4] + TKEEP: [ctrl_i, 4, 0, 3, 0] diff --git a/examples/ir_examples/interface/ipxact/antmicro.com/interface/receiver/1.0/receiver.1.0.xml b/examples/ir_examples/interface/ipxact/antmicro.com/interface/receiver/1.0/receiver.1.0.xml new file mode 100644 index 00000000..f3345150 --- /dev/null +++ b/examples/ir_examples/interface/ipxact/antmicro.com/interface/receiver/1.0/receiver.1.0.xml @@ -0,0 +1,133 @@ + + + antmicro.com + interface + receiver + 1.0 + + + io + + + + + + + + TDATA + + + dat_i + + + + + TVALID + + + ctrl_i + + + 4 + 4 + + + + + + + TKEEP + + 3 + 0 + + + + ctrl_i + + + 3 + 0 + + + + + + + + + + + + + + rtl + rtl + yaml + + + + + clk + + in + + + + rst + + in + + + + noise + + in + + + 15 + 0 + + + + + + ext + + inout + + + 31 + 0 + + + + + + dat_i + + in + + + 31 + 0 + + + + + + ctrl_i + + in + + + 4 + 0 + + + + + + + + diff --git a/examples/ir_examples/interface/ipxact/antmicro.com/interface/streamer/1.0/streamer.1.0.xml b/examples/ir_examples/interface/ipxact/antmicro.com/interface/streamer/1.0/streamer.1.0.xml new file mode 100644 index 00000000..e0c9782f --- /dev/null +++ b/examples/ir_examples/interface/ipxact/antmicro.com/interface/streamer/1.0/streamer.1.0.xml @@ -0,0 +1,109 @@ + + + antmicro.com + interface + streamer + 1.0 + + + io + + + + + + + + TVALID + + + ctrl_o + + + 0 + 0 + + + + + + + TDATA + + + dat_o + + + + + TKEEP + + 3 + 0 + + + + ctrl_o + + + 4 + 1 + + + + + + + + + + + + + + rtl + rtl + yaml + + + + + clk + + in + + + + rst + + in + + + + dat_o + + out + + + 31 + 0 + + + + + + ctrl_o + + out + + + 4 + 0 + + + + + + + + diff --git a/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.1.0.xml b/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.1.0.xml new file mode 100644 index 00000000..04e9cf24 --- /dev/null +++ b/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.1.0.xml @@ -0,0 +1,42 @@ + + + antmicro.com + interface + top + 1.0 + + + + hierarchical + top.designcfg_1.0 + + + + + top.designcfg_1.0 + + + + + + clk + + in + + + + rst + + in + + + + ext + + inout + + + + + + diff --git a/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.design.1.0.xml b/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.design.1.0.xml new file mode 100644 index 00000000..f1ddfbfb --- /dev/null +++ b/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.design.1.0.xml @@ -0,0 +1,71 @@ + + + antmicro.com + interface + top.design + 1.0 + + + streamer_0 + + + + + receiver_0 + + + + + + + receiver_0_io_to_streamer_0_io + + + + + + + streamer_0_rst_to_rst + + + + + + + receiver_0_rst_to_rst + + + + + + + streamer_0_clk_to_clk + + + + + + + receiver_0_clk_to_clk + + + + + + + receiver_0_ext_to_ext + + + + + + + receiver_0_noise_to_tiedValue + 2888 + + + + + + + diff --git a/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.designcfg.1.0.xml b/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.designcfg.1.0.xml new file mode 100644 index 00000000..8a0a10bc --- /dev/null +++ b/examples/ir_examples/interface/ipxact/antmicro.com/interface/top/1.0/top.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + interface + top.designcfg + 1.0 + + + diff --git a/examples/ir_examples/simple/ipxact/antmicro.com/simple/2mux/1.0/2mux.1.0.xml b/examples/ir_examples/simple/ipxact/antmicro.com/simple/2mux/1.0/2mux.1.0.xml new file mode 100644 index 00000000..a80bdb49 --- /dev/null +++ b/examples/ir_examples/simple/ipxact/antmicro.com/simple/2mux/1.0/2mux.1.0.xml @@ -0,0 +1,104 @@ + + + antmicro.com + simple + 2mux + 1.0 + + + + rtl + rtl + + + WIDTH + WIDTH + uuid_8aa7308d_4062_497d_b1f7_5af6060277c9 + + + OUT_WIDTH + OUT_WIDTH + uuid_06932756_fde6_4b3a_8bec_5c5c253fa7b6 + + + + + + + gen_sel + + in + + + + gen1 + + in + + + uuid_8aa7308d_4062_497d_b1f7_5af6060277c9-1 + 0 + + + + + + + + + + + gen2 + + in + + + uuid_8aa7308d_4062_497d_b1f7_5af6060277c9-1 + 0 + + + + + + + + + + + out + + out + + + uuid_06932756_fde6_4b3a_8bec_5c5c253fa7b6-1 + 0 + + + + + + + + + fileSet + + ../../../../../../../../../../Downloads/kpm_design_20240917_095032.yaml + verilogSource + + + + + + + pWIDTH + WIDTH + 64 + + + pOUT_WIDTH + OUT_WIDTH + 1 + + + + diff --git a/examples/ir_examples/simple/ipxact/antmicro.com/simple/2mux/1.0/two_mux.xml b/examples/ir_examples/simple/ipxact/antmicro.com/simple/2mux/1.0/two_mux.xml new file mode 100644 index 00000000..9a29c4a2 --- /dev/null +++ b/examples/ir_examples/simple/ipxact/antmicro.com/simple/2mux/1.0/two_mux.xml @@ -0,0 +1,94 @@ + + + antmicro.com + simple + 2mux + 1.0 + + + + rtl + rtl + + + WIDTH + WIDTH + uuid_8aa7308d_4062_497d_b1f7_5af6060277c9 + + + OUT_WIDTH + OUT_WIDTH + uuid_06932756_fde6_4b3a_8bec_5c5c253fa7b6 + + + + + + + gen_sel + + in + + + + gen1 + + in + + + uuid_8aa7308d_4062_497d_b1f7_5af6060277c9-1 + 0 + + + + + + + + + + + gen2 + + in + + + uuid_8aa7308d_4062_497d_b1f7_5af6060277c9-1 + 0 + + + + + + + + + + + out + + out + + + uuid_06932756_fde6_4b3a_8bec_5c5c253fa7b6-1 + 0 + + + + + + + + + pWIDTH + WIDTH + 64 + + + pOUT_WIDTH + OUT_WIDTH + 1 + + + + diff --git a/examples/ir_examples/simple/ipxact/antmicro.com/simple/lfsr_gen/1.2/lfsr_gen.1.2.xml b/examples/ir_examples/simple/ipxact/antmicro.com/simple/lfsr_gen/1.2/lfsr_gen.1.2.xml new file mode 100644 index 00000000..3b04827a --- /dev/null +++ b/examples/ir_examples/simple/ipxact/antmicro.com/simple/lfsr_gen/1.2/lfsr_gen.1.2.xml @@ -0,0 +1,70 @@ + + + antmicro.com + simple + lfsr_gen + 1.2 + + + + rtl + rtl + yaml + + + WIDTH + WIDTH + uuid_c94aa249_4ef3_4cdb_aa5f_485b75e8734e + + + SEED + SEED + uuid_38bdfd3a_4a10_498b_9bae_9ac89ab8c716 + + + + + + + clk + + in + + + + + rst + + in + + + + + gen_out + + out + + + uuid_c94aa249_4ef3_4cdb_aa5f_485b75e8734e-1 + 0 + + + + + + + + + + pWIDTH + pWIDTH + 64 + + + pSEED + pSEED + 1 + + + + diff --git a/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.1.0.xml b/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.1.0.xml new file mode 100644 index 00000000..aecf0baa --- /dev/null +++ b/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.1.0.xml @@ -0,0 +1,48 @@ + + + antmicro.com + simple + top + 1.0 + + + + hierarchical + top.designcfg_1.0 + + + + + top.designcfg_1.0 + + + + + + clk + + in + + + + rst + + in + + + + sel_gen + + in + + + + rnd_bit + + out + + + + + + diff --git a/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.design.1.0.xml b/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.design.1.0.xml new file mode 100644 index 00000000..9a8dc9f2 --- /dev/null +++ b/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.design.1.0.xml @@ -0,0 +1,96 @@ + + + antmicro.com + simple + top.design + 1.0 + + + two_mux + + + 128 + + + + + + gen1 + + + 128 + 1337 + + + + + + gen2 + + + 128 + + + + + + + + gen2_gen_out_to_two_mux_gen2 + + + + + + + gen1_gen_out_to_two_mux_gen1 + + + + + + + gen1_clk_to_clk + + + + + + + gen1_rst_to_rst + + + + + + + gen2_clk_to_clk + + + + + + + gen2_rst_to_rst + + + + + + + two_mux_gen_sel_to_sel_gen + + + + + + + two_mux_out_to_rnd_bit + + + + + + + + diff --git a/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.designcfg.1.0.xml b/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.designcfg.1.0.xml new file mode 100644 index 00000000..9b10d732 --- /dev/null +++ b/examples/ir_examples/simple/ipxact/antmicro.com/simple/top/1.0/top.designcfg.1.0.xml @@ -0,0 +1,9 @@ + + + antmicro.com + simple + top.designcfg + 1.0 + + +