diff options
| author | Jack Koenig | 2021-09-17 21:01:26 -0700 |
|---|---|---|
| committer | Jack Koenig | 2021-09-17 21:01:26 -0700 |
| commit | 5c8c19345e6711279594cf1f9ddab33623c8eba7 (patch) | |
| tree | d9d6ced3934aa4a8be3dec19ddcefe50a7a93d5a /docs/src/wiki-deprecated/troubleshooting.md | |
| parent | e63b9667d89768e0ec6dc8a9153335cb48a213a7 (diff) | |
| parent | 958904cb2f2f65d02b2ab3ec6d9ec2e06d04e482 (diff) | |
Merge branch 'master' into 3.5-release
Diffstat (limited to 'docs/src/wiki-deprecated/troubleshooting.md')
| -rw-r--r-- | docs/src/wiki-deprecated/troubleshooting.md | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/docs/src/wiki-deprecated/troubleshooting.md b/docs/src/wiki-deprecated/troubleshooting.md deleted file mode 100644 index 333adec4..00000000 --- a/docs/src/wiki-deprecated/troubleshooting.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: docs -title: "Troubleshooting" -section: "chisel3" ---- -This page is a starting point for recording common and not so common problems in developing with Chisel3. In particular, those situations where there is a work around that will keep you going. - -### `type mismatch` specifying width/value of a `UInt`/`SInt` - -*I have some old code that used to work correctly in chisel2 (and still does if I use the `import Chisel._` compatibility layer) -but causes a `type mismatch` error in straight chisel3:* - -```scala -class TestBlock extends Module { - val io = IO(new Bundle { - val output = Output(UInt(width=3)) - }) -} -``` -*produces* -```bash -type mismatch; -[error] found : Int(3) -[error] required: chisel3.internal.firrtl.Width -[error] val output = Output(UInt(width=3)) -``` - -The single argument, multi-function object/constructors from chisel2 have been removed from chisel3. -It was felt these were too prone to error and made it difficult to diagnose error conditions in chisel3 code. - -In chisel3, the single argument to the `UInt`/`SInt` object/constructor specifies the *width* and must be a `Width` type. -Although there are no automatic conversions from `Int` to `Width`, an `Int` may be converted to a `Width` by applying the `W` method to an `Int`. -In chisel3, the above code becomes: -```scala -class TestBlock extends Module { - val io = IO(new Bundle { - val output = Output(UInt(3.W)) - }) -} -``` -`UInt`/`SInt` literals may be created from an `Int` with the application of either the `U` or `S` method. - -```scala -UInt(42) -``` -in chisel2, becomes -```scala -42.U -``` -in chisel3 - -A literal with a specific width is created by calling the `U` or `S` method with a `W` argument. -Use: -```scala -1.S(8.W) -``` -to create an 8-bit wide (signed) literal with value 1. |
