parent
7eb60c9802
commit
347cc67e71
|
|
@ -285,7 +285,7 @@ One might note that the quote from section 4.1.14 says "Unsized
|
|||
expressions...", so arguably accepting (15+1) or even (16+0) as an
|
||||
operand to a concatenation is not a violation of the letter of the
|
||||
law. However, the very next sentence of the quote expresses the
|
||||
intent, and accepting (15+1) as having a more defined size taen (16)
|
||||
intent, and accepting (15+1) as having a more defined size than (16)
|
||||
seems to be a violation of that intent.
|
||||
|
||||
Whatever a compiler decides the size is, the user has no way to
|
||||
|
|
|
|||
13
ivl_target.h
13
ivl_target.h
|
|
@ -60,7 +60,7 @@ _BEGIN_DECL
|
|||
* around.
|
||||
*
|
||||
* ivl_array_t
|
||||
* This object represent an array that can be a memory or a net
|
||||
* This object represents an array that can be a memory or a net
|
||||
* array. (They are the same from the perspective of ivl_target.h.)
|
||||
*
|
||||
* ivl_branch_t
|
||||
|
|
@ -82,14 +82,13 @@ _BEGIN_DECL
|
|||
* particular gets the type of the node in the form of an
|
||||
* ivl_expr_type_t enumeration value.
|
||||
*
|
||||
* Objects of this type represent expressions in
|
||||
* processes. Structural expressions are instead treated as logic
|
||||
* gates.
|
||||
* Objects of this type represent expressions in processes.
|
||||
* Structural expressions are instead treated as logic gates.
|
||||
*
|
||||
* ivl_island_t
|
||||
* Certain types of objects may belong to islands. The island that
|
||||
* they belong to is represented by the ivl_island_t cookie. To
|
||||
* know if object belong to the same island, it is sufficient to
|
||||
* know if objects belong to the same island, it is sufficient to
|
||||
* compare island cookies. If a==b, then island a is the same as
|
||||
* island b.
|
||||
*
|
||||
|
|
@ -1475,7 +1474,7 @@ extern ivl_signal_t ivl_lval_sig(ivl_lval_t net);
|
|||
* that are input only, drive0 and drive1 are both IVL_DR_HiZ.
|
||||
*
|
||||
* The strength of strength-aware devices (such as nmos devices)
|
||||
* does not really matter, as long at the output is not
|
||||
* does not really matter, as long as the output is not
|
||||
* IVL_DR_HiZ. Testing for HiZ drivers is how code generators
|
||||
* detect inputs.
|
||||
*
|
||||
|
|
@ -1543,7 +1542,7 @@ extern ivl_signal_t ivl_nexus_ptr_sig(ivl_nexus_ptr_t net);
|
|||
*
|
||||
* ivl_parameter_file
|
||||
* ivl_parameter_lineno
|
||||
* Returns the file and line where this parameter is define
|
||||
* Returns the file and line where this parameter is defined
|
||||
*/
|
||||
extern const char* ivl_parameter_basename(ivl_parameter_t net);
|
||||
extern ivl_scope_t ivl_parameter_scope(ivl_parameter_t net);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ access the design.
|
|||
ABOUT SPECIFIC EXPRESSION TYPES
|
||||
|
||||
In this section find notes about the various kinds of expression
|
||||
nodes. The notes here are in addition to the more generation
|
||||
nodes. The notes here are in addition to the more general
|
||||
documentation in the ivl_target.h header file.
|
||||
|
||||
* IVL_EX_CONCAT
|
||||
|
|
|
|||
|
|
@ -636,7 +636,7 @@ static void declare_one_signal(vhdl_entity *ent, ivl_signal_t sig,
|
|||
}
|
||||
|
||||
// Declare all signals and ports for a scope.
|
||||
// This is done in two phases: first the ports are added then then
|
||||
// This is done in two phases: first the ports are added, then
|
||||
// internal signals. Making two passes like this ensures ports get
|
||||
// first pick of names when there is a collision.
|
||||
static void declare_signals(vhdl_entity *ent, ivl_scope_t scope)
|
||||
|
|
|
|||
|
|
@ -608,7 +608,7 @@ static unsigned int get_format_char(char **rtn, int ljust, int plus,
|
|||
/* The 512 (513-1 for EOL) is more than enough for any double
|
||||
* value (309 digits plus a decimal point maximum). Because of
|
||||
* scaling this could be larger. For decimal values you can
|
||||
* have an arbitraty value so you can overflow the buffer, but
|
||||
* have an arbitrary value so you can overflow the buffer, but
|
||||
* for now we will assume the user will use this as intended
|
||||
* (pass a time variable or the result of a time function). */
|
||||
tbuf = malloc((513+suff_len)*sizeof(char));
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ static void get_mem_params(vpiHandle argv, vpiHandle callh, const char *name,
|
|||
"value.\n", name);
|
||||
}
|
||||
|
||||
/* Get optional forth parameter (finish address). */
|
||||
/* Get optional fourth parameter (finish address). */
|
||||
*stop_item = vpi_scan(argv);
|
||||
if (*stop_item) {
|
||||
/* Warn the user if they gave a real value for the finish
|
||||
|
|
@ -321,7 +321,7 @@ static PLI_INT32 sys_readmem_calltf(ICARUS_VPI_CONST PLI_BYTE8*name)
|
|||
|
||||
wwid = vpi_get(vpiSize, vpi_handle_by_index(mitem, min_addr));
|
||||
|
||||
/* variable that will be uses by the lexer to pass values
|
||||
/* variable that will be used by the lexer to pass values
|
||||
back to this code */
|
||||
value.format = vpiVectorVal;
|
||||
value.value.vector = calloc((wwid+31)/32, sizeof(s_vpi_vecval));
|
||||
|
|
|
|||
Loading…
Reference in New Issue