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

[WIP] Implement a VHDL backend #122

Draft
wants to merge 100 commits into
base: master
Choose a base branch
from
Draft

Commits on May 21, 2020

  1. Copy the verilog backend as vhdl_backend.cc

    Now need to start the actual conversion of syntax
    rlee287 committed May 21, 2020
    Configuration menu
    Copy the full SHA
    e8f73b6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0bca471 View commit details
    Browse the repository at this point in the history

Commits on May 22, 2020

  1. Configuration menu
    Copy the full SHA
    6bedabe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7346b71 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ac43d36 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7b08be4 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2020

  1. Configuration menu
    Copy the full SHA
    1c8e4cc View commit details
    Browse the repository at this point in the history
  2. Mark dump_attributes as PORTING REQUIRED again

    More nontrivial design decisions need to be made before I actually write the code for this
    rlee287 committed May 23, 2020
    Configuration menu
    Copy the full SHA
    004a03e View commit details
    Browse the repository at this point in the history
  3. Implement dump_constant and remove decimal option

    Completely removing decimal functionality may come back to bite me later...I'll see
    rlee287 committed May 23, 2020
    Configuration menu
    Copy the full SHA
    698fa75 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a4e4c1c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    14b618c View commit details
    Browse the repository at this point in the history

Commits on May 24, 2020

  1. Configuration menu
    Copy the full SHA
    cac7e92 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a6c0fdd View commit details
    Browse the repository at this point in the history
  3. Port dump_memory function

    rlee287 committed May 24, 2020
    Configuration menu
    Copy the full SHA
    3fe06c7 View commit details
    Browse the repository at this point in the history
  4. Port dump_conn

    rlee287 committed May 24, 2020
    Configuration menu
    Copy the full SHA
    4f56439 View commit details
    Browse the repository at this point in the history

Commits on May 25, 2020

  1. Configuration menu
    Copy the full SHA
    d128c86 View commit details
    Browse the repository at this point in the history
  2. Port dump_cell_expr_uniop and dump_cell_expr_binop

    dump_cell_expr_binop may need adjustments because of STD_LOGIC_VECTOR vs UNSIGNED/SIGNED
    rlee287 committed May 25, 2020
    Configuration menu
    Copy the full SHA
    6e1b43d View commit details
    Browse the repository at this point in the history
  3. Replace $signed with signed in dump_cell_expr_port

    I am not marking this as done until I better understand the context in which this function is called
    rlee287 committed May 25, 2020
    Configuration menu
    Copy the full SHA
    826226b View commit details
    Browse the repository at this point in the history

Commits on May 28, 2020

  1. Configuration menu
    Copy the full SHA
    29c63ab View commit details
    Browse the repository at this point in the history

Commits on May 30, 2020

  1. Port syntax gen of is_reg_wire

    TODO: do reg/wire distinctions make sense for a VHDL backend?
    rlee287 committed May 30, 2020
    Configuration menu
    Copy the full SHA
    9e1f859 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2020

  1. Port dump_reg_init

    rlee287 committed May 31, 2020
    Configuration menu
    Copy the full SHA
    ee90888 View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2020

  1. Configuration menu
    Copy the full SHA
    5b7c9e6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dad6896 View commit details
    Browse the repository at this point in the history
  3. Initial pass of porting dump_cell_expr

    Items labelled unported have not been changed yet, and everything else is subject to change
    rlee287 committed Jun 3, 2020
    Configuration menu
    Copy the full SHA
    ee5c01c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b3e271f View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2020

  1. Adjustments to autogenerated IDs to ensure numbered internal signals …

    …are valid VHDL identifiers
    rlee287 committed Jun 5, 2020
    Configuration menu
    Copy the full SHA
    38472f6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7103321 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    81989ce View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6e8b878 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a14cf54 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9f79c7d View commit details
    Browse the repository at this point in the history
  7. Initial port of module dumping

    At this point the backend should produce valid VHDL for a subset of RTLIL netlists
    
    Finishing the port of dump_cell_expr and other functions will take time
    rlee287 committed Jun 5, 2020
    Configuration menu
    Copy the full SHA
    402c7f9 View commit details
    Browse the repository at this point in the history
  8. Port bit selection of cellname

    Other changes may be needed relating to invalid VHDL identifier characters
    rlee287 committed Jun 5, 2020
    Configuration menu
    Copy the full SHA
    46626fd View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2020

  1. Write function to get a sensitivity set given SigSpecs

    This should be used to create sensitivity lists whenever creating processes
    rlee287 committed Jun 6, 2020
    Configuration menu
    Copy the full SHA
    014f000 View commit details
    Browse the repository at this point in the history
  2. Address Xiretza's review comment

    The Verilog backend assumes that port_ids>=1 when valid, however...
    rlee287 committed Jun 6, 2020
    Configuration menu
    Copy the full SHA
    9c31e5b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7de3d2b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    474302b View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2020

  1. Configuration menu
    Copy the full SHA
    af3a5b7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c31fc4a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    78cc811 View commit details
    Browse the repository at this point in the history
  4. First pass at porting $pmux

    Testing in progress, as well as handling 'X' constants
    rlee287 committed Jun 8, 2020
    Configuration menu
    Copy the full SHA
    83c2768 View commit details
    Browse the repository at this point in the history
  5. Fix $pmux dump to use onehot strings instead of aggregates

    This is valid VHDL-93 as well (besides of the aggregates breaking GHDL)
    rlee287 committed Jun 8, 2020
    Configuration menu
    Copy the full SHA
    8529d14 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d7c10fc View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2020

  1. Properly port $eq and related

    TODOs in code below, especially with $lt and related
    rlee287 committed Jun 9, 2020
    Configuration menu
    Copy the full SHA
    3865d76 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2020

  1. Configuration menu
    Copy the full SHA
    a5e59d0 View commit details
    Browse the repository at this point in the history
  2. For hex consts, push '0's and include width when needed

    Old stuff copied from Verilog did not follow VHDL spec
    
    Unfortunately all-unknown constants like 5x"ZZ" are invalid...
    rlee287 committed Jun 13, 2020
    Configuration menu
    Copy the full SHA
    9cff95b View commit details
    Browse the repository at this point in the history
  3. Adjustments to some UNIOPs

    rlee287 committed Jun 13, 2020
    Configuration menu
    Copy the full SHA
    ad5bbc7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6920990 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e30fb17 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ff18f66 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9a76111 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2020

  1. Configuration menu
    Copy the full SHA
    e2259fb View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2020

  1. Part 1 of porting new FF changes

    See YosysHQ/yosys@8fd4351
    
    Still need to write the actual new FF code generation
    rlee287 committed Aug 2, 2020
    Configuration menu
    Copy the full SHA
    6118676 View commit details
    Browse the repository at this point in the history
  2. Misc comments and tidying up

    rlee287 committed Aug 2, 2020
    Configuration menu
    Copy the full SHA
    157e8b3 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2020

  1. Make memory_array_types a regular (sorted) set

    It will usually be too small to reap the benefits of an amortized hashing implementation of a map
    rlee287 committed Aug 5, 2020
    Configuration menu
    Copy the full SHA
    6738129 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2020

  1. Configuration menu
    Copy the full SHA
    1f9b1b6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f2575f2 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2020

  1. Dump $assert cells as regular VHDL assert

    See comment on ghdl/ghdl#1427
    rlee287 committed Aug 9, 2020
    Configuration menu
    Copy the full SHA
    6e90b3d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    890084e View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2020

  1. Configuration menu
    Copy the full SHA
    3f9cd3a View commit details
    Browse the repository at this point in the history
  2. Copy over new dumping code and port clocked FF portions of it

    TODO: dump latches (besides of sensitivity list which was ported here)
    rlee287 committed Aug 10, 2020
    Configuration menu
    Copy the full SHA
    0d23d58 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2020

  1. Configuration menu
    Copy the full SHA
    98507ff View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2020

  1. Port latch generation code as well

    This still needs testing, especially since opt_dff does not do latch transforms (yet)
    rlee287 committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    a319f1a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef2aea4 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2020

  1. Configuration menu
    Copy the full SHA
    793e1ab View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2020

  1. Remove defparam option

    Code for dumping modules still needs to be ported
    rlee287 committed Sep 26, 2020
    Configuration menu
    Copy the full SHA
    f6a24ef View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f844b44 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2020

  1. Configuration menu
    Copy the full SHA
    cf1341f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1e2dd13 View commit details
    Browse the repository at this point in the history
  3. More updates on dumping FFs

    rlee287 committed Oct 9, 2020
    Configuration menu
    Copy the full SHA
    1cd293d View commit details
    Browse the repository at this point in the history
  4. More UNIOP handling

    reduce_(and|or|bool|xn?or) should work perfectly fine now, but s?sh(l|r) is probably still broken
    rlee287 committed Oct 9, 2020
    Configuration menu
    Copy the full SHA
    e014176 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2020

  1. Configuration menu
    Copy the full SHA
    95e3d1d View commit details
    Browse the repository at this point in the history
  2. Replace "unclocked assertions" warning with "unclocked directives"

    This is more accurate, especially since $assert is normal assert now
    rlee287 committed Oct 13, 2020
    Configuration menu
    Copy the full SHA
    3b039c3 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2020

  1. Rename dump_memory to dump_memory_types

    Prepare to bring in new refactoring of memory dumping from Verilog backend
    rlee287 committed Nov 2, 2020
    Configuration menu
    Copy the full SHA
    506cc97 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2020

  1. Configuration menu
    Copy the full SHA
    2f9d312 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    61f9b1f View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2020

  1. Configuration menu
    Copy the full SHA
    626a4c0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cac3f48 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    613f282 View commit details
    Browse the repository at this point in the history
  4. Port over Mem helper changes from Verilog backend

    FF sensitivity lists not ported; see code comment for explanation
    rlee287 committed Dec 17, 2020
    Configuration menu
    Copy the full SHA
    14e9562 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ea00e7b View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2020

  1. Configuration menu
    Copy the full SHA
    c25d2ab View commit details
    Browse the repository at this point in the history
  2. Put parentheses around output of dump_cell_expr_port in case concaten…

    …ation happens
    
    All uses of dump_cell_expr_port are on the RHS of an expression
    rlee287 committed Dec 20, 2020
    Configuration menu
    Copy the full SHA
    b7967d4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    fcc110f View commit details
    Browse the repository at this point in the history
  4. Propagate LHS concatenation mode to various cell_expr dumps

    TODO: concatenation handling may be broken outside of VHDL-2008 mode; handle this later
    rlee287 committed Dec 20, 2020
    Configuration menu
    Copy the full SHA
    4070425 View commit details
    Browse the repository at this point in the history
  5. Fix mult18x18d component to match yosys verilog

    (cherry picked from commit 6671d04)
    JulianKemmerer authored and rlee287 committed Dec 20, 2020
    Configuration menu
    Copy the full SHA
    94fec4e View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2020

  1. Configuration menu
    Copy the full SHA
    d7a9032 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ff3be34 View commit details
    Browse the repository at this point in the history

Commits on Jan 1, 2021

  1. Configuration menu
    Copy the full SHA
    e13584c View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2021

  1. Configuration menu
    Copy the full SHA
    6111230 View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2021

  1. Slight adjustments to formal cell dumping

    * In std08 mode, avoid an explicit `='1'` for non-PSL asserts
    * Update the log_experiment call to reflect the use of non-PSL asserts
    rlee287 committed Feb 11, 2021
    Configuration menu
    Copy the full SHA
    0c6ea58 View commit details
    Browse the repository at this point in the history
  2. Mark dump_memory_types as porting complete

    Actually dumping memories though is currently an unresolved thing
    rlee287 committed Feb 11, 2021
    Configuration menu
    Copy the full SHA
    f1b5e3c View commit details
    Browse the repository at this point in the history
  3. Initial (believed working) port of $lut cell dumping

    Qualified expression part will probably be moved into dump_sigspec
    rlee287 committed Feb 11, 2021
    Configuration menu
    Copy the full SHA
    ad14b39 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2021

  1. Configuration menu
    Copy the full SHA
    52d1a02 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    38763f2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e6b31e2 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2021

  1. Configuration menu
    Copy the full SHA
    32251b2 View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2021

  1. Configuration menu
    Copy the full SHA
    e60aa70 View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2021

  1. Configuration menu
    Copy the full SHA
    1bd4855 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2021

  1. Configuration menu
    Copy the full SHA
    5b24da4 View commit details
    Browse the repository at this point in the history