diff options
Diffstat (limited to 'translate/translation.adb')
-rw-r--r-- | translate/translation.adb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/translate/translation.adb b/translate/translation.adb index 7b8351f..06a6851 100644 --- a/translate/translation.adb +++ b/translate/translation.adb @@ -20913,16 +20913,21 @@ package body Translation is New_Assign_Stmt (New_Obj (Cond), New_Lit (Ghdl_Bool_True_Node)); New_Else_Stmt (If_Blk); - -- Or because the value. is different from the current value. + -- Or because the value is different from the current driving value. + -- FIXME: ideally, we should compare the value with the current + -- value of the driver. This is an approximation that might break + -- with weird resolution functions. New_Assign_Stmt (New_Obj (Cond), New_Compare_Op (ON_Neq, - New_Value (New_Access_Element (M2E (Targ_Sig))), + Chap7.Translate_Signal_Driving_Value + (M2E (Targ_Sig), Targ_Type), M2E (Drv), Ghdl_Bool_Type)); Finish_If_Stmt (If_Blk); - -- Put signal into active list. + -- Put signal into active list (if not already in the list). + -- FIXME: this is not thread-safe! Start_If_Stmt (If_Blk, New_Dyadic_Op |