Line 1... |
Line 1... |
/**
|
/*
|
* @file
|
* Copyright 2018 Sergey Khabarov, sergeykhbr@gmail.com
|
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
*
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* @brief CPU synthesizable SystemC class declaration.
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
*
|
*
|
* @details Use the following targets attributes to generate trace files:
|
* @details Use the following targets attributes to generate trace files:
|
* GenerateRef - Generate memory and registers write accesses
|
* GenerateRef - Generate memory and registers write accesses
|
* trace files to compare them with functional model
|
* trace files to compare them with functional model
|
* InVcdFile - Stimulus VCD file
|
* InVcdFile - Stimulus VCD file
|
Line 22... |
Line 31... |
#include "ihap.h"
|
#include "ihap.h"
|
#include "async_tqueue.h"
|
#include "async_tqueue.h"
|
#include "coreservices/ithread.h"
|
#include "coreservices/ithread.h"
|
#include "coreservices/icpuriscv.h"
|
#include "coreservices/icpuriscv.h"
|
#include "coreservices/imemop.h"
|
#include "coreservices/imemop.h"
|
#include "coreservices/ibus.h"
|
|
#include "coreservices/iclock.h"
|
#include "coreservices/iclock.h"
|
#include "rtl_wrapper.h"
|
#include "rtl_wrapper.h"
|
#include "riverlib/river_top.h"
|
#include "riverlib/river_top.h"
|
#include <systemc.h>
|
#include <systemc.h>
|
|
|
Line 50... |
Line 58... |
|
|
virtual void registerStepCallback(IClockListener *cb, uint64_t t) {
|
virtual void registerStepCallback(IClockListener *cb, uint64_t t) {
|
wrapper_->registerStepCallback(cb, t);
|
wrapper_->registerStepCallback(cb, t);
|
}
|
}
|
|
|
|
virtual double getFreqHz() { return 1.0; }
|
|
|
/** IHap */
|
/** IHap */
|
virtual void hapTriggered(IFace *isrc, EHapType type, const char *descr);
|
virtual void hapTriggered(IFace *isrc, EHapType type, const char *descr);
|
|
|
virtual void stop();
|
virtual void stop();
|
|
|
Line 70... |
Line 80... |
AttributeType freqHz_;
|
AttributeType freqHz_;
|
AttributeType InVcdFile_;
|
AttributeType InVcdFile_;
|
AttributeType OutVcdFile_;
|
AttributeType OutVcdFile_;
|
AttributeType GenerateRef_;
|
AttributeType GenerateRef_;
|
event_def config_done_;
|
event_def config_done_;
|
IBus *ibus_;
|
IMemoryOperation *ibus_;
|
|
|
sc_signal<bool> w_clk;
|
sc_signal<bool> w_clk;
|
sc_signal<bool> w_nrst;
|
sc_signal<bool> w_nrst;
|
// Timer:
|
// Timer:
|
sc_signal<sc_uint<64>> wb_time;
|
sc_signal<sc_uint<64>> wb_time;
|