2019-02-18 07:38:16 +01:00
|
|
|
{- sv2v
|
|
|
|
|
- Author: Zachary Snow <zach@zachjs.com>
|
|
|
|
|
-
|
|
|
|
|
- Conversion for `always_comb` and `always_ff`
|
2019-04-23 06:23:32 +02:00
|
|
|
-
|
|
|
|
|
- `always_comb` -> `always @*`
|
|
|
|
|
- `always_ff` -> `always`
|
2019-02-18 07:38:16 +01:00
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
module Convert.AlwaysKW (convert) where
|
|
|
|
|
|
2019-02-25 08:36:37 +01:00
|
|
|
import Convert.Traverse
|
2019-02-18 07:38:16 +01:00
|
|
|
import Language.SystemVerilog.AST
|
|
|
|
|
|
2019-04-24 00:44:45 +02:00
|
|
|
convert :: [AST] -> [AST]
|
|
|
|
|
convert = map $ traverseDescriptions $ traverseModuleItems replaceAlwaysKW
|
2019-02-18 07:38:16 +01:00
|
|
|
|
2019-02-25 08:36:37 +01:00
|
|
|
replaceAlwaysKW :: ModuleItem -> ModuleItem
|
|
|
|
|
replaceAlwaysKW (AlwaysC AlwaysComb stmt) =
|
2019-03-05 02:58:09 +01:00
|
|
|
AlwaysC Always $ Timing (Event SenseStar) stmt
|
2019-02-25 08:36:37 +01:00
|
|
|
replaceAlwaysKW (AlwaysC AlwaysFF stmt) =
|
2019-02-18 07:38:16 +01:00
|
|
|
AlwaysC Always stmt
|
2019-02-25 08:36:37 +01:00
|
|
|
replaceAlwaysKW other = other
|