Skip to content
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

Generate qsys files for altpll and alterapll #1022

Merged
merged 1 commit into from Feb 14, 2020
Merged

Generate qsys files for altpll and alterapll #1022

merged 1 commit into from Feb 14, 2020

Conversation

christiaanb
Copy link
Member

@christiaanb christiaanb commented Jan 19, 2020

Fixes #545

Todo:

  • Infer speeds of incoming and outgoing clocks
  • Calculate the PLL divide/muliply settings from said speeds
  • Implement qsys generation for alterapll
  • Support size 3+ Constraint Tuples (only size 2 is supported so far)

Copy link
Member

@martijnbastiaan martijnbastiaan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@@ -36,11 +51,20 @@ altpllTF = TemplateFunction used valid altpllTemplate
alteraPllTF :: TemplateFunction
alteraPllTF = TemplateFunction used valid alteraPllTemplate
where
used = [1,2,3]
used = [1..20]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we need IgnoredArguments/UsedArguments like we do for BlackBoxHaskell for TemplateFunctions too :-)

@christiaanb christiaanb marked this pull request as ready for review February 14, 2020 09:47
@christiaanb christiaanb merged commit 7deb8b4 into master Feb 14, 2020
@christiaanb christiaanb deleted the fix545 branch February 14, 2020 10:49
DigitalBrains1 added a commit that referenced this pull request Aug 4, 2023
The Xilinx `clockWizard`s now set the name of the instance rather than
of the IP core. This change was also done for Intel in PR #1022. When
the user is responsible for creating the IP core/Qsys component, it
makes sense to always set the component name to the user-provided value.
But when that is also generated by Clash, that is no longer needed.
Allowing users to set the instance name makes it possible to match on
the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in
following commits.
DigitalBrains1 added a commit that referenced this pull request Aug 30, 2023
The Xilinx `clockWizard`s now set the name of the instance rather than
of the IP core. This change was also done for Intel in PR #1022. When
the user is responsible for creating the IP core/Qsys component, it
makes sense to always set the component name to the user-provided value.
But when that is also generated by Clash, that is no longer needed.
Allowing users to set the instance name makes it possible to match on
the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in
following commits.
DigitalBrains1 added a commit that referenced this pull request Sep 6, 2023
The Xilinx `clockWizard`s now set the name of the instance rather than
of the IP core. This change was also done for Intel in PR #1022. When
the user is responsible for creating the IP core/Qsys component, it
makes sense to always set the component name to the user-provided value.
But when that is also generated by Clash, that is no longer needed.
Allowing users to set the instance name makes it possible to match on
the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in
following commits.
DigitalBrains1 added a commit that referenced this pull request Sep 7, 2023
The Xilinx `clockWizard`s now set the name of the instance rather than
of the IP core. This change was also done for Intel in PR #1022. When
the user is responsible for creating the IP core/Qsys component, it
makes sense to always set the component name to the user-provided value.
But when that is also generated by Clash, that is no longer needed.
Allowing users to set the instance name makes it possible to match on
the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in
following commits.
DigitalBrains1 added a commit that referenced this pull request Sep 11, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commit.
DigitalBrains1 added a commit that referenced this pull request Sep 19, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commit.
DigitalBrains1 added a commit that referenced this pull request Sep 27, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commit.
DigitalBrains1 added a commit that referenced this pull request Sep 28, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commit.
DigitalBrains1 added a commit that referenced this pull request Sep 29, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commit.
DigitalBrains1 added a commit that referenced this pull request Oct 10, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commit.
DigitalBrains1 added a commit that referenced this pull request Oct 11, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 15, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 17, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 17, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 20, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core/Qsys component, it makes sense to always set
the component name to the user-provided value. But when that is also
generated by Clash, that is no longer needed. Allowing users to set the
instance name makes it possible to match on the instance in SDC files
and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 23, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core, it makes sense to always set the component
name to the user-provided value. But when that is also generated by
Clash, that is no longer needed. Allowing users to set the instance name
makes it possible to match on the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 24, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core, it makes sense to always set the component
name to the user-provided value. But when that is also generated by
Clash, that is no longer needed. Allowing users to set the instance name
makes it possible to match on the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
DigitalBrains1 added a commit that referenced this pull request Oct 25, 2023
The wizards in `Clash.Xilinx.ClockGen` now use the user-provided name as
the name of the /instance/ rather than the name of the /IP core/. This
change was also done for Intel in PR #1022. When the user is responsible
for creating the IP core, it makes sense to always set the component
name to the user-provided value. But when that is also generated by
Clash, that is no longer needed. Allowing users to set the instance name
makes it possible to match on the instance in SDC files and such.

Instead of always needing a user-specified name for the Intel and Xilinx
PLL functions, the instance name can now be set through
`Clash.Magic.setName`. To accomodate the changed function arguments, the
functions are split into the deprecated old interface and a new
interface which marks the use _unsafe_. This is expanded upon in the
next commits.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automatically generate qsys/coregen files when using IP
2 participants