diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-08-02 09:26:44 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-08-03 19:05:59 +0200 |
commit | ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918 (patch) | |
tree | ea3055f70f47b593b70a1f1af911bcb2946dc02f /src/grt/grt-disp_signals.adb | |
parent | 024086cfb9c965abc579aa7fb5efc3e63d39c6b5 (diff) | |
download | ghdl-ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918.tar.gz ghdl-ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918.tar.bz2 ghdl-ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918.zip |
vhdl: handle force/release statements in translate and grt. For #1416
Diffstat (limited to 'src/grt/grt-disp_signals.adb')
-rw-r--r-- | src/grt/grt-disp_signals.adb | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/grt/grt-disp_signals.adb b/src/grt/grt-disp_signals.adb index 887898109..78b065432 100644 --- a/src/grt/grt-disp_signals.adb +++ b/src/grt/grt-disp_signals.adb @@ -167,30 +167,28 @@ package body Grt.Disp_Signals is end loop; end Disp_Transaction; + procedure Disp_Flag (Name : Character; Cond : Boolean) + is + C : Character; + begin + if Cond then + C := Name; + else + C := '-'; + end if; + Put (C); + end Disp_Flag; + procedure Disp_Single_Signal_Attributes (Sig : Ghdl_Signal_Ptr) is begin Disp_Mode (Sig.Mode); Put (' '); - if Sig.Active then - Put ('A'); - else - Put ('-'); - end if; - if Sig.Event then - Put ('E'); - else - Put ('-'); - end if; - if Sig.Has_Active then - Put ('a'); - else - Put ('-'); - end if; - if Sig.S.Effective /= null then - Put ('e'); - else - Put ('-'); - end if; + Disp_Flag ('A', Sig.Active); + Disp_Flag ('E', Sig.Event); + Disp_Flag ('a', Sig.Has_Active); + Disp_Flag ('e', Sig.S.Effective /= null); + Disp_Flag ('F', Sig.Flags.Is_Drv_Forced); + Disp_Flag ('f', Sig.Flags.Is_Eff_Forced); if Boolean'(True) then Put (" last_event="); Put_Time (stdout, Sig.Last_Event); |