aboutsummaryrefslogtreecommitdiffstats
path: root/icetime
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2016-01-26 00:39:25 +0100
committerClifford Wolf <clifford@clifford.at>2016-01-26 00:39:25 +0100
commit4fb1bfd2df4188a9563c4b9cbca1355ae4339f56 (patch)
tree3466a2e546a05c257e151f837e3499cbc069ca2b /icetime
parentcdb0b22476c107c3b0a1f738b3f2ec6f8e3dd6e9 (diff)
downloadicestorm-4fb1bfd2df4188a9563c4b9cbca1355ae4339f56.tar.gz
icestorm-4fb1bfd2df4188a9563c4b9cbca1355ae4339f56.tar.bz2
icestorm-4fb1bfd2df4188a9563c4b9cbca1355ae4339f56.zip
icetime progress
Diffstat (limited to 'icetime')
-rw-r--r--icetime/icetime.cc24
1 files changed, 19 insertions, 5 deletions
diff --git a/icetime/icetime.cc b/icetime/icetime.cc
index 4477ccc..a6325f0 100644
--- a/icetime/icetime.cc
+++ b/icetime/icetime.cc
@@ -670,7 +670,7 @@ struct TimingAnalysis
continue;
if (driver_type == "LogicCell40" && driver_port == "carryout") {
- if (inport == "in0" || inport == "in3")
+ if (inport == "in0" || inport == "in3" || inport == "ce" || inport == "sr")
continue;
}
@@ -1269,7 +1269,7 @@ void make_seg_cell(int net, const net_segment_t &seg)
return;
}
- if (seg.name == "lutff_global/clk")
+ if (seg.name == "lutff_global/clk" || seg.name == "lutff_global/cen" || seg.name == "lutff_global/s_r")
{
for (int i = 0; i < 8; i++)
{
@@ -1277,10 +1277,22 @@ void make_seg_cell(int net, const net_segment_t &seg)
continue;
std::tuple<int, int, std::string> key(seg.x, seg.y, stringf("lutff_%d/out", i));
- if (x_y_name_net.count(key)) {
+ if (x_y_name_net.count(key))
+ {
auto cell = make_lc40(seg.x, seg.y, i);
- make_inmux(seg.x, seg.y, net, "ClkMux");
- netlist_cell_ports[cell]["clk"] = net_name(seg.net);
+
+ if (seg.name == "lutff_global/clk") {
+ make_inmux(seg.x, seg.y, net, "ClkMux");
+ netlist_cell_ports[cell]["clk"] = net_name(seg.net);
+ }
+ if (seg.name == "lutff_global/cen") {
+ make_inmux(seg.x, seg.y, net, "CEMux");
+ netlist_cell_ports[cell]["ce"] = net_name(seg.net);
+ }
+ if (seg.name == "lutff_global/s_r") {
+ make_inmux(seg.x, seg.y, net, "SRMux");
+ netlist_cell_ports[cell]["sr"] = net_name(seg.net);
+ }
}
}
return;
@@ -1816,12 +1828,14 @@ int main(int argc, char **argv)
exit(1);
}
}
+ break;
case 'r':
frpt = fopen(optarg, "w");
if (frpt == nullptr) {
perror("Can't open report file");
exit(1);
}
+ break;
case 'm':
max_span_hack = true;
break;