From f1ad5b58e8a749d558758288d03ce75bf6b8ff9c Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Thu, 18 Mar 2021 16:47:58 -0700 Subject: Reorganize website docs (#1806) Updates to chisel3 documentation for website: * guard code examples with mdoc and fix errors encountered along the way * move some website content here vs splitting the content across two repos * Bring in the interval-types and loading memories content so that it will be visible from the website * remove all references to the wiki (deprecated) * Remove reference to Wiki from the README * fix tabbing and compile of chisel3-vs-chisel2 section * Appendix: faqs now guarded and compile * FAQs: move to resources section--- docs/src/wiki-deprecated/operators.md | 63 ----------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 docs/src/wiki-deprecated/operators.md (limited to 'docs/src/wiki-deprecated/operators.md') diff --git a/docs/src/wiki-deprecated/operators.md b/docs/src/wiki-deprecated/operators.md deleted file mode 100644 index c23e2009..00000000 --- a/docs/src/wiki-deprecated/operators.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -layout: docs -title: "Operators" -section: "chisel3" ---- -### List of operators -Chisel defines a set of hardware operators: - -| Operation | Explanation | -| --------- | --------- | -| **Bitwise operators** | **Valid on:** SInt, UInt, Bool | -| `val invertedX = ~x` | Bitwise NOT | -| `val hiBits = x & "h_ffff_0000".U` | Bitwise AND | -| `val flagsOut = flagsIn \| overflow` | Bitwise OR | -| `val flagsOut = flagsIn ^ toggle` | Bitwise XOR | -| **Bitwise reductions.** | **Valid on:** SInt and UInt. Returns Bool. | -| `val allSet = x.andR` | AND reduction | -| `val anySet = x.orR` | OR reduction | -| `val parity = x.xorR` | XOR reduction | -| **Equality comparison.** | **Valid on:** SInt, UInt, and Bool. Returns Bool. | -| `val equ = x === y` | Equality | -| `val neq = x =/= y` | Inequality | -| **Shifts** | **Valid on:** SInt and UInt | -| `val twoToTheX = 1.S << x` | Logical shift left | -| `val hiBits = x >> 16.U` | Right shift (logical on UInt and arithmetic on SInt). | -| **Bitfield manipulation** | **Valid on:** SInt, UInt, and Bool. | -| `val xLSB = x(0)` | Extract single bit, LSB has index 0. | -| `val xTopNibble = x(15, 12)` | Extract bit field from end to start bit position. | -| `val usDebt = Fill(3, "hA".U)` | Replicate a bit string multiple times. | -| `val float = Cat(sign, exponent, mantissa)` | Concatenates bit fields, with first argument on left. | -| **Logical Operations** | **Valid on:** Bool -| `val sleep = !busy` | Logical NOT | -| `val hit = tagMatch && valid` | Logical AND | -| `val stall = src1busy || src2busy` | Logical OR | -| `val out = Mux(sel, inTrue, inFalse)` | Two-input mux where sel is a Bool | -| **Arithmetic operations** | **Valid on Nums:** SInt and UInt. | -| `val sum = a + b` *or* `val sum = a +% b` | Addition (without width expansion) | -| `val sum = a +& b` | Addition (with width expansion) | -| `val diff = a - b` *or* `val diff = a -% b` | Subtraction (without width expansion) | -| `val diff = a -& b` | Subtraction (with width expansion) | -| `val prod = a * b` | Multiplication | -| `val div = a / b` | Division | -| `val mod = a % b` | Modulus | -| **Arithmetic comparisons** | **Valid on Nums:** SInt and UInt. Returns Bool. | -| `val gt = a > b` | Greater than | -| `val gte = a >= b` | Greater than or equal | -| `val lt = a < b` | Less than | -| `val lte = a <= b` | Less than or equal | - ->Our choice of operator names was constrained by the Scala language. -We have to use triple equals```===``` for equality and ```=/=``` -for inequality to allow the -native Scala equals operator to remain usable. - -The Chisel operator precedence is not directly defined as part of the Chisel language. -Practically, it is determined by the evaluation order of the circuit, -which natuarally follows the [Scala operator precedence](https://docs.scala-lang.org/tour/operators.html). -If in doubt of operator precedence, use parentheses. - -> The Chisel/Scala operator precedence is similar but -not identical to precedence in Java or C. Verilog has the same operator precedence as C, but VHDL -does not. Verilog has precedence ordering for logic operations, but in VHDL -those operators have the same precedence and are evaluated from left to right. -- cgit v1.2.3