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
|
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
|
operand to a concatenation is not a violation of the letter of the
|
||||||
law. However, the very next sentence of the quote expresses 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.
|
seems to be a violation of that intent.
|
||||||
|
|
||||||
Whatever a compiler decides the size is, the user has no way to
|
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.
|
* around.
|
||||||
*
|
*
|
||||||
* ivl_array_t
|
* 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.)
|
* array. (They are the same from the perspective of ivl_target.h.)
|
||||||
*
|
*
|
||||||
* ivl_branch_t
|
* ivl_branch_t
|
||||||
|
|
@ -82,14 +82,13 @@ _BEGIN_DECL
|
||||||
* particular gets the type of the node in the form of an
|
* particular gets the type of the node in the form of an
|
||||||
* ivl_expr_type_t enumeration value.
|
* ivl_expr_type_t enumeration value.
|
||||||
*
|
*
|
||||||
* Objects of this type represent expressions in
|
* Objects of this type represent expressions in processes.
|
||||||
* processes. Structural expressions are instead treated as logic
|
* Structural expressions are instead treated as logic gates.
|
||||||
* gates.
|
|
||||||
*
|
*
|
||||||
* ivl_island_t
|
* ivl_island_t
|
||||||
* Certain types of objects may belong to islands. The island that
|
* Certain types of objects may belong to islands. The island that
|
||||||
* they belong to is represented by the ivl_island_t cookie. To
|
* 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
|
* compare island cookies. If a==b, then island a is the same as
|
||||||
* island b.
|
* 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.
|
* that are input only, drive0 and drive1 are both IVL_DR_HiZ.
|
||||||
*
|
*
|
||||||
* The strength of strength-aware devices (such as nmos devices)
|
* 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
|
* IVL_DR_HiZ. Testing for HiZ drivers is how code generators
|
||||||
* detect inputs.
|
* detect inputs.
|
||||||
*
|
*
|
||||||
|
|
@ -1543,7 +1542,7 @@ extern ivl_signal_t ivl_nexus_ptr_sig(ivl_nexus_ptr_t net);
|
||||||
*
|
*
|
||||||
* ivl_parameter_file
|
* ivl_parameter_file
|
||||||
* ivl_parameter_lineno
|
* 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 const char* ivl_parameter_basename(ivl_parameter_t net);
|
||||||
extern ivl_scope_t ivl_parameter_scope(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
|
ABOUT SPECIFIC EXPRESSION TYPES
|
||||||
|
|
||||||
In this section find notes about the various kinds of expression
|
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.
|
documentation in the ivl_target.h header file.
|
||||||
|
|
||||||
* IVL_EX_CONCAT
|
* 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.
|
// 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
|
// internal signals. Making two passes like this ensures ports get
|
||||||
// first pick of names when there is a collision.
|
// first pick of names when there is a collision.
|
||||||
static void declare_signals(vhdl_entity *ent, ivl_scope_t scope)
|
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
|
/* The 512 (513-1 for EOL) is more than enough for any double
|
||||||
* value (309 digits plus a decimal point maximum). Because of
|
* value (309 digits plus a decimal point maximum). Because of
|
||||||
* scaling this could be larger. For decimal values you can
|
* 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
|
* for now we will assume the user will use this as intended
|
||||||
* (pass a time variable or the result of a time function). */
|
* (pass a time variable or the result of a time function). */
|
||||||
tbuf = malloc((513+suff_len)*sizeof(char));
|
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);
|
"value.\n", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get optional forth parameter (finish address). */
|
/* Get optional fourth parameter (finish address). */
|
||||||
*stop_item = vpi_scan(argv);
|
*stop_item = vpi_scan(argv);
|
||||||
if (*stop_item) {
|
if (*stop_item) {
|
||||||
/* Warn the user if they gave a real value for the finish
|
/* 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));
|
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 */
|
back to this code */
|
||||||
value.format = vpiVectorVal;
|
value.format = vpiVectorVal;
|
||||||
value.value.vector = calloc((wwid+31)/32, sizeof(s_vpi_vecval));
|
value.value.vector = calloc((wwid+31)/32, sizeof(s_vpi_vecval));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue