From b2be9c1bec800422581e208b22be9dffd6d0d5f1 Mon Sep 17 00:00:00 2001 From: azidar Date: Mon, 24 Aug 2015 11:47:02 -0700 Subject: Added BigInt error if passed a string without starting with a b or h --- src/main/stanza/bigint2.stanza | 2 +- src/main/stanza/custom-compiler.stanza | 7 ++++++- src/main/stanza/custom-passes.stanza | 6 +++--- 3 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/main/stanza/bigint2.stanza b/src/main/stanza/bigint2.stanza index 4657878a..ebd01652 100644 --- a/src/main/stanza/bigint2.stanza +++ b/src/main/stanza/bigint2.stanza @@ -109,7 +109,7 @@ public defn BigIntLit (data:Int, num-bits:Int) -> BigInt : public defn BigIntLit (data:String) -> BigInt : val base = data[0] - val shamt = if base == 'b': 1 else if base == 'h': 4 else: 2 + val shamt = if base == 'b': 1 else if base == 'h': 4 else: error("Unsupported BigInt base.") val digits = substring(data, 1) val num-bits = length(digits) * shamt BigIntLit(digits,shamt,num-bits) diff --git a/src/main/stanza/custom-compiler.stanza b/src/main/stanza/custom-compiler.stanza index 85275c94..36a6474f 100644 --- a/src/main/stanza/custom-compiler.stanza +++ b/src/main/stanza/custom-compiler.stanza @@ -29,13 +29,18 @@ public defmethod passes (c:InstrumentedVerilog) -> List : ExpandAccessors() LowerToGround() ExpandIndexedConnects() + InferTypes() + CheckGenders() ExpandWhens() InferWidths() + ;Pad() + ConstProp() SplitExp() ToRealIR() - RemoveSpecialChars() + ;RemoveSpecialChars() CheckHighForm() CheckLowForm() + CheckInitialization() Verilog(with-output(c)) ] diff --git a/src/main/stanza/custom-passes.stanza b/src/main/stanza/custom-passes.stanza index 30f0b6c5..44eb6b5e 100644 --- a/src/main/stanza/custom-passes.stanza +++ b/src/main/stanza/custom-passes.stanza @@ -47,7 +47,7 @@ defn when-coverage (port-name:Symbol, reg-name:Symbol, instrument?:HashTable(symbol-hash) val w1 = IntWidth(1) val t1 = UIntType(w1) - val u1 = UIntValue(BigIntLit("1"),w1) + val u1 = UIntValue(BigIntLit("h1"),w1) defn when-coverage (s:Stmt) -> Stmt : match(s) : (s:Conditionally) : @@ -72,17 +72,17 @@ defn when-coverage (port-name:Symbol, reg-name:Symbol, instrument?:HashTable