mirror of
https://github.com/YosysHQ/yosys
synced 2026-07-18 13:15:46 +00:00
Bump yosys to latest
This commit is contained in:
commit
1f00bf0057
20 changed files with 5627 additions and 5647 deletions
|
|
@ -216,6 +216,7 @@ static void reconstruct_clb_attimes(void *user_data, uint64_t pnt_time, fstHandl
|
|||
void FstData::reconstruct_callback_attimes(uint64_t pnt_time, fstHandle pnt_facidx, const unsigned char *pnt_value, uint32_t /* plen */)
|
||||
{
|
||||
if (pnt_time > end_time || !pnt_value) return;
|
||||
if (curr_cycle > last_cycle) return;
|
||||
// if we are past the timestamp
|
||||
bool is_clock = false;
|
||||
if (!all_samples) {
|
||||
|
|
@ -235,6 +236,7 @@ void FstData::reconstruct_callback_attimes(uint64_t pnt_time, fstHandle pnt_faci
|
|||
if (pnt_time > last_time) {
|
||||
if (all_samples) {
|
||||
callback(last_time);
|
||||
curr_cycle++;
|
||||
last_time = pnt_time;
|
||||
} else {
|
||||
if (is_clock) {
|
||||
|
|
@ -242,6 +244,7 @@ void FstData::reconstruct_callback_attimes(uint64_t pnt_time, fstHandle pnt_faci
|
|||
std::string prev = past_data[pnt_facidx];
|
||||
if ((prev!="1" && val=="1") || (prev!="0" && val=="0")) {
|
||||
callback(last_time);
|
||||
curr_cycle++;
|
||||
last_time = pnt_time;
|
||||
}
|
||||
}
|
||||
|
|
@ -251,12 +254,14 @@ void FstData::reconstruct_callback_attimes(uint64_t pnt_time, fstHandle pnt_faci
|
|||
last_data[pnt_facidx] = std::string((const char *)pnt_value);
|
||||
}
|
||||
|
||||
void FstData::reconstructAllAtTimes(std::vector<fstHandle> &signal, uint64_t start, uint64_t end, CallbackFunction cb)
|
||||
void FstData::reconstructAllAtTimes(std::vector<fstHandle> &signal, uint64_t start, uint64_t end, unsigned int end_cycle, CallbackFunction cb)
|
||||
{
|
||||
clk_signals = signal;
|
||||
callback = cb;
|
||||
start_time = start;
|
||||
end_time = end;
|
||||
curr_cycle = 0;
|
||||
last_cycle = end_cycle;
|
||||
last_data.clear();
|
||||
last_time = start_time;
|
||||
past_data.clear();
|
||||
|
|
@ -266,12 +271,16 @@ void FstData::reconstructAllAtTimes(std::vector<fstHandle> &signal, uint64_t sta
|
|||
fstReaderSetUnlimitedTimeRange(ctx);
|
||||
fstReaderSetFacProcessMaskAll(ctx);
|
||||
fstReaderIterBlocks2(ctx, reconstruct_clb_attimes, reconstruct_clb_varlen_attimes, this, nullptr);
|
||||
if (last_time!=end_time) {
|
||||
if (last_time!=end_time && curr_cycle <= last_cycle) {
|
||||
past_data = last_data;
|
||||
callback(last_time);
|
||||
curr_cycle++;
|
||||
}
|
||||
if (curr_cycle <= last_cycle) {
|
||||
past_data = last_data;
|
||||
callback(end_time);
|
||||
curr_cycle++;
|
||||
}
|
||||
past_data = last_data;
|
||||
callback(end_time);
|
||||
}
|
||||
|
||||
std::string FstData::valueOf(fstHandle signal)
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class FstData
|
|||
std::vector<FstVar>& getVars() { return vars; };
|
||||
|
||||
void reconstruct_callback_attimes(uint64_t pnt_time, fstHandle pnt_facidx, const unsigned char *pnt_value, uint32_t plen);
|
||||
void reconstructAllAtTimes(std::vector<fstHandle> &signal, uint64_t start_time, uint64_t end_time, CallbackFunction cb);
|
||||
void reconstructAllAtTimes(std::vector<fstHandle> &signal, uint64_t start_time, uint64_t end_time, unsigned int end_cycle, CallbackFunction cb);
|
||||
|
||||
std::string valueOf(fstHandle signal);
|
||||
fstHandle getHandle(std::string name);
|
||||
|
|
@ -73,6 +73,8 @@ private:
|
|||
std::string timescale_str;
|
||||
uint64_t start_time;
|
||||
uint64_t end_time;
|
||||
unsigned int last_cycle;
|
||||
unsigned int curr_cycle;
|
||||
CallbackFunction callback;
|
||||
std::vector<fstHandle> clk_signals;
|
||||
bool all_samples;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ struct Pass
|
|||
{
|
||||
std::string pass_name, short_help;
|
||||
Pass(std::string name, std::string short_help = "** document me **");
|
||||
// Prefer overriding 'Pass::on_shutdown()' if possible
|
||||
virtual ~Pass();
|
||||
|
||||
virtual void help();
|
||||
|
|
|
|||
|
|
@ -1190,7 +1190,7 @@ struct RTLIL::Selection
|
|||
bool boxes = false,
|
||||
// the design to select from
|
||||
RTLIL::Design *design = nullptr
|
||||
) :
|
||||
) :
|
||||
selects_boxes(boxes), complete_selection(full && boxes), full_selection(full && !boxes), current_design(design) { }
|
||||
|
||||
// checks if the given module exists in the current design and is a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue