Generate delay devices for sign-extend devices.
It is possible for signe-extend to have a delay attached to it. (Same for repeat.) Handle it like other LPM devices, by stuffing a .delay device into the output path of the device, if appropriate.
This commit is contained in:
parent
dd47599d55
commit
6411e96193
|
|
@ -567,8 +567,14 @@ void NetReplicate::dump_node(ostream&o, unsigned ind) const
|
||||||
|
|
||||||
void NetSignExtend::dump_node(ostream&o, unsigned ind) const
|
void NetSignExtend::dump_node(ostream&o, unsigned ind) const
|
||||||
{
|
{
|
||||||
o << setw(ind) << "" << "NetSignExtend: "
|
o << setw(ind) << "" << "NetSignExtend: " << name();
|
||||||
<< name() << " output width=" << width_ << endl;
|
if (rise_time())
|
||||||
|
o << " #(" << *rise_time()
|
||||||
|
<< "," << *fall_time()
|
||||||
|
<< "," << *decay_time() << ")";
|
||||||
|
else
|
||||||
|
o << " #(.,.,.)";
|
||||||
|
o << " output width=" << width_ << endl;
|
||||||
dump_node_pins(o, ind+4);
|
dump_node_pins(o, ind+4);
|
||||||
dump_obj_attr(o, ind+4);
|
dump_obj_attr(o, ind+4);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1650,15 +1650,19 @@ static void draw_lpm_re(ivl_lpm_t net, const char*type)
|
||||||
|
|
||||||
static void draw_lpm_repeat(ivl_lpm_t net)
|
static void draw_lpm_repeat(ivl_lpm_t net)
|
||||||
{
|
{
|
||||||
fprintf(vvp_out, "L_%p .repeat %u, %u, %s;\n", net,
|
const char*dly = draw_lpm_output_delay(net);
|
||||||
|
|
||||||
|
fprintf(vvp_out, "L_%p%s .repeat %u, %u, %s;\n", net, dly,
|
||||||
ivl_lpm_width(net), ivl_lpm_size(net),
|
ivl_lpm_width(net), ivl_lpm_size(net),
|
||||||
draw_net_input(ivl_lpm_data(net,0)));
|
draw_net_input(ivl_lpm_data(net,0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void draw_lpm_sign_ext(ivl_lpm_t net)
|
static void draw_lpm_sign_ext(ivl_lpm_t net)
|
||||||
{
|
{
|
||||||
fprintf(vvp_out, "L_%p .extend/s %u, %s;\n",
|
const char*dly = draw_lpm_output_delay(net);
|
||||||
net, ivl_lpm_width(net),
|
|
||||||
|
fprintf(vvp_out, "L_%p%s .extend/s %u, %s;\n",
|
||||||
|
net, dly, ivl_lpm_width(net),
|
||||||
draw_net_input(ivl_lpm_data(net,0)));
|
draw_net_input(ivl_lpm_data(net,0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue