doc: Constant
authorSebastien Bourdeauducq <sb@m-labs.hk>
Thu, 17 Sep 2015 03:05:57 +0000 (11:05 +0800)
committerSebastien Bourdeauducq <sb@m-labs.hk>
Thu, 17 Sep 2015 03:05:57 +0000 (11:05 +0800)
doc/fhdl.rst

index 85e78842c18637fef7c2915071359f0cb73c74ce..e3fa7e680011e5b05a7d04dff5527c193681a20f 100644 (file)
@@ -13,13 +13,17 @@ FHDL is made of several elements, which are briefly explained below. They all ca
 Expressions
 ***********
 
-Integers and booleans
-=====================
+Constants
+=========
+
+The ``Constant`` object represents a constant, HDL-literal integer. It behaves like specifying integers and booleans but also supports slicing and can have a bit width or signedness different from what is implied by the value it represents.
 
-Python integers and booleans can appear in FHDL expressions to represent constant values in a circuit. ``True`` and ``False`` are interpreted as 1 and 0, respectively.
+``True`` and ``False`` are interpreted as 1 and 0, respectively.
 
 Negative integers are explicitly supported. As with MyHDL [countin]_, arithmetic operations return the natural results.
 
+To lighten the syntax, assignments and operators automatically wrap Python integers and booleans into ``Constant``. Additionally, ``Constant`` is aliased to ``C``. The following are valid Migen statements: ``a.eq(0)``, ``a.eq(a + 1)``, ``a.eq(C(42)[0:1])``.
+
 .. [countin] http://www.jandecaluwe.com/hdldesign/counting.html
 
 Signal