diff options
author | T. Meissner <programming@goodcleanfun.de> | 2021-02-09 07:31:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-09 07:31:00 +0100 |
commit | 7d5bfac5526528e32f5f44b9bea0bbdfee21a589 (patch) | |
tree | a3d749912cca5d83f8cb1da304b90a62713d2d59 /src/vhdl/vhdl-prints.adb | |
parent | a75c135b5bb3c817ff0d9605c5cfabbfa721c13b (diff) | |
download | ghdl-7d5bfac5526528e32f5f44b9bea0bbdfee21a589.tar.gz ghdl-7d5bfac5526528e32f5f44b9bea0bbdfee21a589.tar.bz2 ghdl-7d5bfac5526528e32f5f44b9bea0bbdfee21a589.zip |
Add support for PSL onehot/onehot0 functions (#1633)
* vhdl: parse PSL onehot/onehot0 builtin calls. For #662
* update pyGHDL bindings
* Synthesis of PSL built-in onehot/onehot0 function.
* testsuite/synth: add tests of PSL built-in functions onehot()/onehot0() for #662
* doc: add info about PSL built-in functions onehot()/onehot0() for #662
* synth: refactor synthesis of onehot/onehot0 functions
Co-authored-by: eine <eine@users.noreply.github.com>
Diffstat (limited to 'src/vhdl/vhdl-prints.adb')
-rw-r--r-- | src/vhdl/vhdl-prints.adb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-prints.adb b/src/vhdl/vhdl-prints.adb index 9a51b5563..8fb03bf8e 100644 --- a/src/vhdl/vhdl-prints.adb +++ b/src/vhdl/vhdl-prints.adb @@ -2335,6 +2335,22 @@ package body Vhdl.Prints is Disp_Token (Ctxt, Tok_Right_Paren); end Disp_Psl_Fell; + procedure Disp_Psl_Onehot (Ctxt : in out Ctxt_Class; Call : Iir) is + begin + Disp_Token (Ctxt, Tok_Onehot); + Disp_Token (Ctxt, Tok_Left_Paren); + Print (Ctxt, Get_Expression (Call)); + Disp_Token (Ctxt, Tok_Right_Paren); + end Disp_Psl_Onehot; + + procedure Disp_Psl_Onehot0 (Ctxt : in out Ctxt_Class; Call : Iir) is + begin + Disp_Token (Ctxt, Tok_Onehot0); + Disp_Token (Ctxt, Tok_Left_Paren); + Print (Ctxt, Get_Expression (Call)); + Disp_Token (Ctxt, Tok_Right_Paren); + end Disp_Psl_Onehot0; + procedure Disp_Psl_Declaration (Ctxt : in out Ctxt_Class; Stmt : Iir) is Decl : constant PSL_Node := Get_Psl_Declaration (Stmt); @@ -4844,6 +4860,10 @@ package body Vhdl.Prints is Disp_Psl_Rose (Ctxt, Expr); when Iir_Kind_Psl_Fell => Disp_Psl_Fell (Ctxt, Expr); + when Iir_Kind_Psl_Onehot => + Disp_Psl_Onehot (Ctxt, Expr); + when Iir_Kind_Psl_Onehot0 => + Disp_Psl_Onehot0 (Ctxt, Expr); when Iir_Kinds_Type_And_Subtype_Definition => Disp_Type (Ctxt, Expr); |