Пример #1
0
tmpl(/**/)::VciTimer(
    sc_module_name name,
    const IntTab &index,
    const MappingTable &mt,
    size_t nirq)
	: caba::BaseModule(name),
	  m_vci_fsm(p_vci, mt.getSegmentList(index)),
      m_ntimer(nirq),
      r_value(soclib::common::alloc_elems<sc_signal<typename vci_param::data_t> >("value", m_ntimer)),
      r_period(soclib::common::alloc_elems<sc_signal<typename vci_param::data_t> >("period", m_ntimer)),
      r_counter(soclib::common::alloc_elems<sc_signal<typename vci_param::data_t> >("counter", m_ntimer)),
      r_mode(soclib::common::alloc_elems<sc_signal<int> >("mode", m_ntimer)),
      r_irq(soclib::common::alloc_elems<sc_signal<bool> >("saved_irq", m_ntimer)),
      p_clk("clk"),
      p_resetn("resetn"),
      p_vci("vci"),
      p_irq(soclib::common::alloc_elems<sc_out<bool> >("irq", m_ntimer))
{
	m_vci_fsm.on_read_write(on_read, on_write);

	SC_METHOD(transition);
	dont_initialize();
	sensitive << p_clk.pos();

	SC_METHOD(genMoore);
	dont_initialize();
	sensitive << p_clk.neg();
}
Пример #2
0
VciGcdMaster<vci_param>::VciGcdMaster(  sc_module_name insname,
					const soclib::common::IntTab &index,
					const soclib::common::MappingTable &mt,
					const int seed,
					const typename vci_param::addr_t base)
      : sc_module(insname),
      	r_fsm("r_fsm"),
      	r_opa("r_opa"),
      	r_opb("r_opb"),
      	r_res("r_res"),
	r_cycle("r_cycle"),
	m_srcid(mt.indexForId(index)),
	m_base(base),
        p_resetn("p_resetn"),
        p_clk("p_clk"),
        p_vci("p_vci")
{
	SC_METHOD(transition);
	dont_initialize();
	sensitive << p_clk.pos();
	
	SC_METHOD(genMoore);
	dont_initialize();
	sensitive << p_clk.neg();

	srand(seed);
}
Пример #3
0
tmpl(/**/)::LoadWord (sc_module_name insname)
			: BaseModule(insname) {
	SC_METHOD (transition);
	dont_initialize();
	sensitive << p_clk.pos();

	SC_METHOD (genMoore);
	dont_initialize();
	sensitive << p_clk.neg();

	SC_METHOD (genMealy);
	dont_initialize();
	sensitive << p_clk.neg()
		<< p_input.rok
		<< p_output.wok;

	build();
	current = start;

	assert (shiftRegSize <= sizeof(unsigned long long)*8);

#ifdef SOCLIB_MODULE_DEBUG
	// debug
	State * c = start;
	std::cout << "=== states === regSize: " << shiftRegSize << std::endl;
	while(1) {
		std::cout << (*c) << std::endl;
		if (c->num > 0 && c->next->num == 1) {
			break;
		}
		c = c->next;
	}
	std::cout << "=====================" << std::endl;
#endif
}
Пример #4
0
tmpl(/**/)::VciBlockDevice(
    sc_module_name name,
    const MappingTable &mt,
    const IntTab &srcid,
    const IntTab &tgtid,
    const std::string &filename,
    const uint32_t block_size, 
    const uint32_t latency)
	: caba::BaseModule(name),
	  m_vci_target_fsm(p_vci_target, mt.getSegmentList(tgtid)),
	  m_vci_init_fsm(p_vci_initiator, mt.indexForId(srcid)),
      m_block_size(block_size),
      m_latency(latency),
      p_clk("clk"),
      p_resetn("resetn"),
      p_vci_target("vci_target"),
      p_vci_initiator("vci_initiator"),
      p_irq("irq")
{
	m_vci_target_fsm.on_read_write(on_read, on_write);

    m_fd = ::open(filename.c_str(), O_RDWR);
    if ( m_fd < 0 ) {
        std::cerr << "Unable to open block device image file " << filename << std::endl;
        m_device_size = 0;
    } else {
        m_device_size = lseek(m_fd, 0, SEEK_END) / m_block_size;
        if ( m_device_size > ((uint64_t)1<<(vci_param::B*8)) ) {
            std::cerr
                << "Warning: block device " << filename
                << " has more blocks than addressable with "
                << (8*vci_param::B) << "." << std::endl;
            m_device_size = ((uint64_t)1<<(vci_param::B*8));
        }
    }
#ifdef SOCLIB_MODULE_DEBUG
    std::cout 
        << name
        << " = Opened " 
        << filename
        << " which has "
        << m_device_size
        << " blocks of "
        << m_block_size
        << " bytes"
        << std::endl;
#endif

	SC_METHOD(transition);
	dont_initialize();
	sensitive << p_clk.pos();

	SC_METHOD(genMoore);
	dont_initialize();
	sensitive << p_clk.neg();
}
Пример #5
0
tmpl(/**/)::VciXicu( sc_core::sc_module_name name,
                     const MappingTable      &mt,
                     const                   IntTab &index,
                     size_t                  pti_count,
                     size_t                  hwi_count,
                     size_t                  wti_count,
                     size_t                  irq_count )
           : caba::BaseModule(name),
           m_seglist( mt.getSegmentList(index) ),
           m_pti_count( pti_count ),
           m_hwi_count( hwi_count ),
           m_wti_count( wti_count ),
           m_irq_count( irq_count ),

           r_fsm( "r_fsm" ),
           r_data( "r_data" ),
           r_srcid( "r_srcid" ),
           r_trdid( "r_trdid" ),
           r_pktid( "r_pktid" ),
           r_msk_pti( alloc_elems<sc_signal<uint32_t> >("r_msk_pti" , irq_count) ),
           r_msk_wti( alloc_elems<sc_signal<uint32_t> >("r_msk_wti" , irq_count) ),
           r_msk_hwi( alloc_elems<sc_signal<uint32_t> >("r_msk_hwi" , irq_count) ),
           r_pti_pending( "r_pti_pending" ),
           r_wti_pending( "r_wti_pending" ),
           r_hwi_pending( "r_hwi_pending" ),
           r_pti_per( alloc_elems<sc_signal<uint32_t> >("r_pti_per" , pti_count) ),
           r_pti_val( alloc_elems<sc_signal<uint32_t> >("r_pti_val" , pti_count) ),
           r_wti_reg( alloc_elems<sc_signal<uint32_t> >("r_wti_reg" , wti_count) ),

           p_clk( "clk" ),
           p_resetn( "resetn" ),
           p_vci( "vci" ),
           p_irq( alloc_elems<sc_core::sc_out<bool> >("irq", irq_count) ),
           p_hwi( alloc_elems<sc_core::sc_in<bool> >("hwi", hwi_count) )
{
    std::cout << "  - Building VciXicu : " << name << std::endl;

    std::list<soclib::common::Segment>::iterator seg;
    for ( seg = m_seglist.begin() ; seg != m_seglist.end() ; seg++ )
    {
        std::cout << "    => segment " << seg->name()
                  << " / base = " << std::hex << seg->baseAddress()
                  << " / size = " << seg->size() << std::endl; 
    }
 
	SC_METHOD(transition);
	dont_initialize();
	sensitive << p_clk.pos();

	SC_METHOD(genMoore);
	dont_initialize();
	sensitive << p_clk.neg();
}
Пример #6
0
tmpl()::Downsampling(
	sc_core::sc_module_name insname,
	int ncycles)
	   : soclib::caba::BaseModule(insname),
	   m_work_latency(ncycles)
{
	SC_METHOD(transition);
	dont_initialize();
	sensitive << p_clk.pos();

	SC_METHOD(genMoore);
	dont_initialize();
	sensitive << p_clk.neg();
}
Пример #7
0
//extern unsigned int  BitsLength;
//=============================================================================
//                                Constructor
//(author:cylin)===============================================================
sc_h264d_top::sc_h264d_top( 
                const sc_module_name name,
                const sc_time        accept_delay,            // accept delay (SC_TIME)
                const sc_time        read_response_delay,     // read response delay (SC_TIME)
                const sc_time        write_response_delay     // write response delay (SC_TIME)
)
: sc_module            (name)
, accept_delay         (accept_delay)
, read_response_delay  (read_response_delay)
, write_response_delay (write_response_delay)
{
  MEM = (unsigned char *) calloc(0xffffff, 1);//local memory in H264
  //register socket methods
  target_socket.register_b_transport(this, &sc_h264d_top::b_transport);
  target_socket.register_nb_transport_fw(this, &sc_h264d_top::nb_transport_fw );

  SC_THREAD(t_decoder_main);
  SC_THREAD(t_decoder_dump_frame);
  SC_THREAD(t_decoder_deblock_thread);
  SC_THREAD(transaction_req);

  SC_METHOD(call_nb_transport_bw);
  sensitive<<event_call_nb_bw;
  dont_initialize();
  
  //--initialization tlm2 payload ,initiator_socket
  transaction_ptr  = new tlm::tlm_generic_payload(this);
  data_buffer_ptr  = new unsigned char [4];
  
  //show_cur_tran = 30;
  flag_dump_frame = 0;
}
Пример #8
0
SdMMC::SdMMC( sc_core::sc_module_name              name, 
                                const std::string                    &filename,
                                const uint32_t                       latency)

: caba::BaseModule(name),
	m_latency(latency),
	p_clk("p_clk"),
	p_resetn("p_resetn"),
	p_spi_ss("p_spi_ss"),
	p_spi_clk("p_spi_clk"),
	p_spi_mosi("p_spi_mosi"),
	p_spi_miso("p_spi_miso")
{
    std::cout << "  - Building SdMMC " << name << std::endl;

    SC_METHOD(genMealy);
    dont_initialize();
    sensitive << p_clk.neg();
    sensitive << p_resetn;
    sensitive << p_spi_ss;
    sensitive << p_spi_clk;

    m_fd = ::open(filename.c_str(), O_RDWR);
    if ( m_fd < 0 ) 
    {
	    std::cout << "Error in component SdMMC : " << name 
	              << " Unable to open file " << filename << std::endl;
	    exit(1);
    }
    m_device_size = lseek(m_fd, 0, SEEK_END);

} // end constructor
Пример #9
0
    // le constructeur 
    Display::Display (sc_core::sc_module_name insname, 
            const int w , const int h ,
            const int lsync , const int fsync ):
        sc_core::sc_module(insname), 
        p_WIDTH(w), p_HEIGHT(h), p_LINE_SYNC(lsync), p_FRAME_SYNC(fsync)
    {

        SC_THREAD(read_pixels);
        sensitive << clk.pos();
        dont_initialize();

        // SDL INIT
        if ( SDL_Init(SDL_INIT_VIDEO) < 0 )
        {
            cerr << "Unable to initilize SDL: " 
                << SDL_GetError() << endl;
            exit(1);
        }

        // allocating frame pointer
        fb_memory = SDL_SetVideoMode(p_WIDTH, p_HEIGHT, 32, SDL_SWSURFACE); // 32 bits per pixel
        if ( fb_memory == NULL ) {
            cerr <<  "Unable to create  " 
                << p_WIDTH <<"x"<< p_HEIGHT << "display with 1 bpp:" 
                << SDL_GetError() << endl;
            exit(1);
        }

        // debut de l'image
        pixel_c = 0;
        pixel_l = 0;

        std::cout << "Display "  << name()
            << " was created succesfully " << std::endl;
    }
Пример #10
0
VciVgsb<vci_param>::VciVgsb (	sc_module_name 		name,
                        	MappingTable 		&maptab,
                        	size_t 			nb_master,
                        	size_t 			nb_slave)
    : sc_core::sc_module(name),
      m_routing_table(maptab.getRoutingTable( IntTab() ) ),
      m_nb_initiator(nb_master),
      m_nb_target(nb_slave),
      p_clk("clk"),
      p_resetn("resetn"),
      p_to_initiator(soclib::common::alloc_elems<soclib::caba::VciTarget<vci_param> >("p_to_initiator", nb_master)),
      p_to_target(soclib::common::alloc_elems<soclib::caba::VciInitiator<vci_param> >("p_to_target", nb_slave)),
      r_fsm("r_fsm"),
      r_initiator_index("r_initiator_index"),
      r_target_index("r_target_index"),
      r_vci_counter(soclib::common::alloc_elems<sc_signal<uint32_t> >("r_vci_counter", nb_master, nb_slave))
{
	SC_METHOD(transition);
	dont_initialize();
	sensitive << p_clk.pos();

	SC_METHOD(genMealy_rspval);
	dont_initialize();
	sensitive << p_clk.neg();
	for ( size_t i=0 ; i<nb_slave  ; i++ ) sensitive << p_to_target[i];

	SC_METHOD(genMealy_rspack);
	dont_initialize();
	sensitive << p_clk.neg();
	for ( size_t i=0 ; i<nb_master ; i++ ) sensitive << p_to_initiator[i];

	SC_METHOD(genMealy_cmdval);
	dont_initialize();
	sensitive << p_clk.neg();
	for ( size_t i=0 ; i<nb_master ; i++ ) sensitive << p_to_initiator[i];

	SC_METHOD(genMealy_cmdack);
	dont_initialize();
	sensitive << p_clk.neg();
	for ( size_t i=0 ; i<nb_slave  ; i++ ) sensitive << p_to_target[i];

	if ( !m_routing_table.isAllBelow( nb_slave ) ) {
		std::cout << "error in vci_gsb component" << std::endl;
		std::cout << "one target index is larger than the number of targets" << std::endl;
		exit(0);
	}
} // end constructor
Пример #11
0
//Constructor
filter::filter(sc_module_name name):sc_module(name)
{
    //mem = new sc_fifo<unsigned char> ("mem", 600*600);

    SC_THREAD(doFilter);
    dont_initialize();
    sensitive << clock.pos();
}
Пример #12
0
  Mod(const sc_module_name& name) : sc_module(name), a("a")
  {
    SC_METHOD(foo);
    sensitive << clk.pos();
    dont_initialize();

    sc_trace(sc_tf, a, a.name());
  }
Пример #13
0
UartSC::UartSC(sc_core::sc_module_name uart):
	sc_module(uart)
{
#ifdef UART_SC_STDIN_ENABLE
	SC_THREAD(driveRx);
#endif
	SC_THREAD(checkTx);
	dont_initialize();
	sensitive << uarttx;

}				// UartSC ()
Пример #14
0
simple_die_controller::simple_die_controller(sc_module_name module_name) : sc_module(module_name) {
	m_cache_reg = NULL;
	m_data_reg = NULL;
	m_die_busy = false;
	m_bus_busy = false;
	m_op_mode = DIE_FREE_MODE;

	SC_METHOD(on_exec_completed);
	sensitive << m_exec_completed_event;
	dont_initialize();
}
Пример #15
0
sc_event_queue::sc_event_queue( sc_module_name name_ )
    : sc_module( name_ ),
      m_ppq( 128, sc_time_compare ),
      m_e( (std::string(SC_KERNEL_EVENT_PREFIX)+"_event").c_str() ),
      m_change_stamp(0),
      m_pending_delta(0)
{
    SC_METHOD( fire_event );
    sensitive << m_e;
    dont_initialize();
}
Пример #16
0
NativeWrapper::NativeWrapper(sc_core::sc_module_name name) : sc_module(name),
							     irq("irq")
{
	interrupt = false;

	SC_THREAD(compute);

	SC_METHOD(interrupt_handler_internal);
	sensitive << irq.pos();
	dont_initialize();
}
Пример #17
0
		VideoOut<wb_param>::VideoOut(sc_core::sc_module_name insname)
		: sc_core::sc_module(insname)
		{
			std::cout << "WishBone video out "  << name() 
				<< " created sucsesfully" << std::endl;
			SC_METHOD(masterTransition);
			dont_initialize();
			sensitive << p_clk.pos();
			SC_METHOD(masterMoore);
			dont_initialize();
			sensitive << p_clk.neg();
			
			SC_METHOD(slaveTransition);
			dont_initialize();
			sensitive << p_clk.pos();
			SC_METHOD(slaveMoore);
			dont_initialize();
			sensitive << p_clk.neg();

			SC_METHOD(outputTransition);
			dont_initialize();
			sensitive<<p_video_clk.pos();
			SC_METHOD(outputMoore);
			dont_initialize();
			sensitive<<p_clk.neg();
		}
Пример #18
0
void ProcessingElement::connectToMemorySystem(MemorySystem *memsys)
{
    m_memorySystem = memsys;

    createPortsAndFIFOs();

    // must be done after FIFOs are created
    SC_METHOD(denseVectorAddrGen);
    sensitive << m_colIndValue->data_written_event() << m_denseVectorAddr->data_read_event();
    dont_initialize();

    SC_METHOD(rowPtrValueSplit);
    sensitive << m_rowPtrValueRaw->data_written_event() << m_rowPtrValue->data_read_event();
}
Пример #19
0
SCBus::SCBus(sc_module_name mname) :
	sc_module(mname),
		udp_socket(INVALID_SOCKET), local2wall_adjust_us(0), ext_synced(false)
{
	LARGE_INTEGER perfCountFreq;
	if (!QueryPerformanceFrequency(&perfCountFreq)) {
		cerr << "SCBus: This platform does not support high resolution timers" << endl;
		exit(GetLastError());
	}
	perfCountPerUS = double(perfCountFreq.QuadPart) / 1e6;
	cout << "SCBus: DBG Performance Counter per uS: " << perfCountPerUS << endl;

	SC_METHOD(transmit_data);
	dont_initialize();
	sensitive << clk.pos() << rst;

	SC_METHOD(receive_data);
	dont_initialize();
	sensitive << clk.pos() << rst;

	WIN32_FIND_DATA FindFileData;
	HANDLE hFind;

	hFind = FindFirstFile("*.sca", &FindFileData);
	if (hFind == INVALID_HANDLE_VALUE) {
		cout << "SCBus: No valid input batch file found (" << GetLastError() << ")" << endl;
		cout << "SCBus: Starting to listen on UDP" << endl;
		SC_THREAD(comm_thread);
	}
	else
	{
		cout << "SCBus: Using batch file '" << FindFileData.cFileName << "'" << endl;
        setup_batch(FindFileData.cFileName);
		FindClose(hFind);
		SC_THREAD(batch_thread);
	}
}
Пример #20
0
VciGcdCoprocessor<vci_param>::VciGcdCoprocessor(sc_module_name insname,
        const soclib::common::IntTab &index,
        const soclib::common::MappingTable &mt)
    : sc_module(insname),
      r_vci_fsm("r_vci_fsm"),
      r_exe_fsm("r_exe_fsm"),
      r_srcid("r_srcid"),
      r_trdid("r_trdid"),
      r_pktid("r_pktid"),
      r_opa("r_opa"),
      r_opb("r_opb"),
      m_segment(mt.getSegment(index)),
      p_resetn("resetn"),
      p_clk("clk"),
      p_vci("vci")
{
    SC_METHOD(transition);
    dont_initialize();
    sensitive << p_clk.pos();

    SC_METHOD(genMoore);
    dont_initialize();
    sensitive << p_clk.neg();
}
Пример #21
0
po_layer_splitter::po_layer_splitter(sc_module_name _name,
        po_layer_splitter_config configuration) :
        configuration(configuration),
        input_stubs("input_stubs"),
        splitted_stubs(configuration.get_layer_nr(), "splitted_stubs")
{
    // ----- Process registration ----------------------------------------------
    SC_METHOD(split_stubs);
        sensitive << input_stubs.data_written();
        dont_initialize();

    // ----- Module channel/variable initialization ----------------------------

    // ----- Module instance / channel binding ---------------------------------

    return;
}
Пример #22
0
    // le constructeur 
    VideoGen::VideoGen (sc_core::sc_module_name insname, const char * bn,
            const int w , const int h ,
            const int lsync , const int fsync ):
        sc_core::sc_module(insname), base_name(bn),
        p_WIDTH(w), p_HEIGHT(h), p_LINE_SYNC(lsync), p_FRAME_SYNC(fsync)
    {
        image.pixel = NULL;
        current_image_number = 0;
        read_image();


        SC_THREAD(gen_sorties);
        sensitive << clk.pos();
        dont_initialize();

        std::cout << "Image generator "  << name()
            << " was created succesfully " << std::endl;
    }
Пример #23
0
Wishbone2TLM::Wishbone2TLM(sc_core::sc_module_name name) : sc_module(name),
    clk("clk") {

    tlm_socket.register_nb_transport_bw(this, &Wishbone2TLM::nb_transport_bw);

    m_state = IDLE;

    m_payload.set_byte_enable_ptr(&m_byte_enable);
    m_payload.set_byte_enable_length(1);
    m_payload.set_data_ptr((unsigned char*)&m_data);
    m_payload.set_data_length(4);
    m_payload.set_streaming_width(4);

    m_phase = tlm::BEGIN_REQ;

    SC_METHOD(transact);
    sensitive << clk.neg();
    dont_initialize();
}
Пример #24
0
dtc_input_unit::dtc_input_unit(sc_module_name _name,
        dtc_input_unit_config configuration) :
        sc_module(_name),
        fe_collect_cycles(configuration.type.fe_collect_cycles),
        fe_id(configuration.fe_id),
        clk("clk"),
        gbt_input("gbt_input"),
        write_buffer_select("write_buffer_select"),
        bx_buffer_out(2, fe_collect_cycles, "bx_sorted_stubs"),
        configuration(configuration)
{
    // ----- Process registration ----------------------------------------------
    SC_METHOD(process_stubs);
        sensitive << gbt_input;
        dont_initialize();

    // ----- Module channel/variable initialization ----------------------------

    // ----- Module instance / channel binding ---------------------------------

    return;
}
BridgeClassicToAMBATLM2<BUSWIDTH>::BridgeClassicToAMBATLM2(sc_core::sc_module_name nm, std::string ace_master_name, std::string debug_master_name)
    : sc_core::sc_module(nm),
      SimpleMemory(BridgeClassicToAMBATLM2_init(new SimpleMemoryParams())),
      writeDataQueue(1),
      slavePort(NULL),funcPort(NULL),
      master_sock(ace_master_name.c_str(),amba::amba_AXI, amba::amba_CT,false, gs::socket::GS_TXN_WITH_DATA),
      debug_port(debug_master_name.c_str()),
      _trace_transactions_cfg("trace_on",false)
{
	m_Api = gs::cnf::GCnf_Api::getApiInstance(this);
	
	master_sock.template register_nb_transport_bw< BridgeClassicToAMBATLM2<BUSWIDTH> >(this, & BridgeClassicToAMBATLM2<BUSWIDTH>::nb_bw_transport);
	debug_port.bind( *this ); // Initiator socket bound to the initiator itself
    counter=0;
    needRetry=false;
    needWrRetry=false;
    needWrIdRetry=false;
    needRdIdRetry=false;
    bus_stalling=false;
    for (uint32_t i=0;i<128;i++)
    {
		rd_packets[i]=NULL;
		wr_packets[i]=NULL;
	}
	clk_period=m_Api->getValue<sc_core::sc_time>("clk1_arm");
	need_wenable_event=false;
	
	SC_THREAD(sendWriteData);
	SC_METHOD(send_dummy_response);
	sensitive << send_dummy_response_event;
	dont_initialize();

	SimObjectParams* tmp_params= const_cast<SimObjectParams*>(_params);
	tmp_params->name=std::string(sc_core::sc_object::name());

}
image_filter_Block_proc::image_filter_Block_proc(sc_module_name name) : sc_module(name), mVcdFile(0) {

    SC_METHOD(thread_ap_clk_no_reset_);
    dont_initialize();
    sensitive << ( ap_clk.pos() );

    SC_METHOD(thread_ap_done);
    sensitive << ( ap_done_reg );
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );

    SC_METHOD(thread_ap_idle);
    sensitive << ( ap_start );
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );

    SC_METHOD(thread_ap_ready);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );

    SC_METHOD(thread_ap_return_0);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_rows_V_fu_31_p1 );
    sensitive << ( ap_return_0_preg );

    SC_METHOD(thread_ap_return_1);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_rows_V_fu_31_p1 );
    sensitive << ( ap_return_1_preg );

    SC_METHOD(thread_ap_return_10);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_rows_V_fu_31_p1 );
    sensitive << ( ap_return_10_preg );

    SC_METHOD(thread_ap_return_11);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_cols_V_fu_35_p1 );
    sensitive << ( ap_return_11_preg );

    SC_METHOD(thread_ap_return_2);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_cols_V_fu_35_p1 );
    sensitive << ( ap_return_2_preg );

    SC_METHOD(thread_ap_return_3);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_cols_V_fu_35_p1 );
    sensitive << ( ap_return_3_preg );

    SC_METHOD(thread_ap_return_4);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_rows_V_fu_31_p1 );
    sensitive << ( ap_return_4_preg );

    SC_METHOD(thread_ap_return_5);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_cols_V_fu_35_p1 );
    sensitive << ( ap_return_5_preg );

    SC_METHOD(thread_ap_return_6);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_rows_V_fu_31_p1 );
    sensitive << ( ap_return_6_preg );

    SC_METHOD(thread_ap_return_7);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_cols_V_fu_35_p1 );
    sensitive << ( ap_return_7_preg );

    SC_METHOD(thread_ap_return_8);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_rows_V_fu_31_p1 );
    sensitive << ( ap_return_8_preg );

    SC_METHOD(thread_ap_return_9);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( ap_sig_bdd_46 );
    sensitive << ( img_0_rgb_cols_V_fu_35_p1 );
    sensitive << ( ap_return_9_preg );

    SC_METHOD(thread_ap_sig_bdd_20);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_bdd_46);
    sensitive << ( ap_start );
    sensitive << ( ap_done_reg );

    SC_METHOD(thread_ap_sig_cseq_ST_st1_fsm_0);
    sensitive << ( ap_sig_bdd_20 );

    SC_METHOD(thread_img_0_rgb_cols_V_fu_35_p1);
    sensitive << ( cols );

    SC_METHOD(thread_img_0_rgb_rows_V_fu_31_p1);
    sensitive << ( rows );

    SC_METHOD(thread_ap_NS_fsm);
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_46 );

    ap_done_reg = SC_LOGIC_0;
    ap_CS_fsm = "1";
    ap_return_0_preg = "000000000000";
    ap_return_1_preg = "000000000000";
    ap_return_2_preg = "000000000000";
    ap_return_3_preg = "000000000000";
    ap_return_4_preg = "000000000000";
    ap_return_5_preg = "000000000000";
    ap_return_6_preg = "000000000000";
    ap_return_7_preg = "000000000000";
    ap_return_8_preg = "000000000000";
    ap_return_9_preg = "000000000000";
    ap_return_10_preg = "000000000000";
    ap_return_11_preg = "000000000000";
    static int apTFileNum = 0;
    stringstream apTFilenSS;
    apTFilenSS << "image_filter_Block_proc_sc_trace_" << apTFileNum ++;
    string apTFn = apTFilenSS.str();
    mVcdFile = sc_create_vcd_trace_file(apTFn.c_str());
    mVcdFile->set_time_unit(1, SC_PS);
    if (1) {
#ifdef __HLS_TRACE_LEVEL_PORT_HIER__
    sc_trace(mVcdFile, ap_clk, "(port)ap_clk");
    sc_trace(mVcdFile, ap_rst, "(port)ap_rst");
    sc_trace(mVcdFile, ap_start, "(port)ap_start");
    sc_trace(mVcdFile, ap_done, "(port)ap_done");
    sc_trace(mVcdFile, ap_continue, "(port)ap_continue");
    sc_trace(mVcdFile, ap_idle, "(port)ap_idle");
    sc_trace(mVcdFile, ap_ready, "(port)ap_ready");
    sc_trace(mVcdFile, rows, "(port)rows");
    sc_trace(mVcdFile, cols, "(port)cols");
    sc_trace(mVcdFile, ap_return_0, "(port)ap_return_0");
    sc_trace(mVcdFile, ap_return_1, "(port)ap_return_1");
    sc_trace(mVcdFile, ap_return_2, "(port)ap_return_2");
    sc_trace(mVcdFile, ap_return_3, "(port)ap_return_3");
    sc_trace(mVcdFile, ap_return_4, "(port)ap_return_4");
    sc_trace(mVcdFile, ap_return_5, "(port)ap_return_5");
    sc_trace(mVcdFile, ap_return_6, "(port)ap_return_6");
    sc_trace(mVcdFile, ap_return_7, "(port)ap_return_7");
    sc_trace(mVcdFile, ap_return_8, "(port)ap_return_8");
    sc_trace(mVcdFile, ap_return_9, "(port)ap_return_9");
    sc_trace(mVcdFile, ap_return_10, "(port)ap_return_10");
    sc_trace(mVcdFile, ap_return_11, "(port)ap_return_11");
#endif
#ifdef __HLS_TRACE_LEVEL_INT__
    sc_trace(mVcdFile, ap_done_reg, "ap_done_reg");
    sc_trace(mVcdFile, ap_CS_fsm, "ap_CS_fsm");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st1_fsm_0, "ap_sig_cseq_ST_st1_fsm_0");
    sc_trace(mVcdFile, ap_sig_bdd_20, "ap_sig_bdd_20");
    sc_trace(mVcdFile, ap_sig_bdd_46, "ap_sig_bdd_46");
    sc_trace(mVcdFile, img_0_rgb_rows_V_fu_31_p1, "img_0_rgb_rows_V_fu_31_p1");
    sc_trace(mVcdFile, img_0_rgb_cols_V_fu_35_p1, "img_0_rgb_cols_V_fu_35_p1");
    sc_trace(mVcdFile, ap_return_0_preg, "ap_return_0_preg");
    sc_trace(mVcdFile, ap_return_1_preg, "ap_return_1_preg");
    sc_trace(mVcdFile, ap_return_2_preg, "ap_return_2_preg");
    sc_trace(mVcdFile, ap_return_3_preg, "ap_return_3_preg");
    sc_trace(mVcdFile, ap_return_4_preg, "ap_return_4_preg");
    sc_trace(mVcdFile, ap_return_5_preg, "ap_return_5_preg");
    sc_trace(mVcdFile, ap_return_6_preg, "ap_return_6_preg");
    sc_trace(mVcdFile, ap_return_7_preg, "ap_return_7_preg");
    sc_trace(mVcdFile, ap_return_8_preg, "ap_return_8_preg");
    sc_trace(mVcdFile, ap_return_9_preg, "ap_return_9_preg");
    sc_trace(mVcdFile, ap_return_10_preg, "ap_return_10_preg");
    sc_trace(mVcdFile, ap_return_11_preg, "ap_return_11_preg");
    sc_trace(mVcdFile, ap_NS_fsm, "ap_NS_fsm");
#endif

    }
}
Пример #27
0
init_5::init_5(sc_module_name name) : sc_module(name), mVcdFile(0) {

    SC_METHOD(thread_ap_clk_no_reset_);
    dont_initialize();
    sensitive << ( ap_clk.pos() );

    SC_METHOD(thread_ap_done);
    sensitive << ( ap_done_reg );
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_29 );

    SC_METHOD(thread_ap_idle);
    sensitive << ( ap_start );
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_ready);
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_29 );

    SC_METHOD(thread_ap_return_0);
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_29 );
    sensitive << ( tmp_fu_29_p1 );
    sensitive << ( ap_return_0_preg );

    SC_METHOD(thread_ap_return_1);
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_29 );
    sensitive << ( tmp_167_fu_33_p1 );
    sensitive << ( ap_return_1_preg );

    SC_METHOD(thread_ap_sig_bdd_29);
    sensitive << ( ap_start );
    sensitive << ( ap_done_reg );

    SC_METHOD(thread_tmp_167_fu_33_p1);
    sensitive << ( p_cols );

    SC_METHOD(thread_tmp_fu_29_p1);
    sensitive << ( p_rows );

    SC_METHOD(thread_ap_NS_fsm);
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_29 );

    ap_done_reg = SC_LOGIC_0;
    ap_CS_fsm = "0";
    ap_return_0_preg = "000000000000";
    ap_return_1_preg = "000000000000";
    static int apTFileNum = 0;
    stringstream apTFilenSS;
    apTFilenSS << "init_5_sc_trace_" << apTFileNum ++;
    string apTFn = apTFilenSS.str();
    mVcdFile = sc_create_vcd_trace_file(apTFn.c_str());
    mVcdFile->set_time_unit(1, SC_PS);
    const char* dump_vcd = std::getenv("AP_WRITE_VCD");
    if (dump_vcd && string(dump_vcd) == "1" ) {
    sc_trace(mVcdFile, ap_clk, "(port)ap_clk");
    sc_trace(mVcdFile, ap_rst, "(port)ap_rst");
    sc_trace(mVcdFile, ap_start, "(port)ap_start");
    sc_trace(mVcdFile, ap_done, "(port)ap_done");
    sc_trace(mVcdFile, ap_continue, "(port)ap_continue");
    sc_trace(mVcdFile, ap_idle, "(port)ap_idle");
    sc_trace(mVcdFile, ap_ready, "(port)ap_ready");
    sc_trace(mVcdFile, p_rows, "(port)p_rows");
    sc_trace(mVcdFile, p_cols, "(port)p_cols");
    sc_trace(mVcdFile, ap_return_0, "(port)ap_return_0");
    sc_trace(mVcdFile, ap_return_1, "(port)ap_return_1");
    sc_trace(mVcdFile, ap_done_reg, "ap_done_reg");
    sc_trace(mVcdFile, ap_CS_fsm, "ap_CS_fsm");
    sc_trace(mVcdFile, ap_sig_bdd_29, "ap_sig_bdd_29");
    sc_trace(mVcdFile, tmp_fu_29_p1, "tmp_fu_29_p1");
    sc_trace(mVcdFile, tmp_167_fu_33_p1, "tmp_167_fu_33_p1");
    sc_trace(mVcdFile, ap_return_0_preg, "ap_return_0_preg");
    sc_trace(mVcdFile, ap_return_1_preg, "ap_return_1_preg");
    sc_trace(mVcdFile, ap_NS_fsm, "ap_NS_fsm");

    }
}
Пример #28
0
adders::adders(sc_module_name name) : sc_module(name), mVcdFile(0) {
    adders_add_32ns_32ns_32_8_U1 = new adders_add_32ns_32ns_32_8<1,8,32,32,32>("adders_add_32ns_32ns_32_8_U1");
    adders_add_32ns_32ns_32_8_U1->clk(ap_clk);
    adders_add_32ns_32ns_32_8_U1->reset(ap_rst);
    adders_add_32ns_32ns_32_8_U1->din0(grp_fu_41_p0);
    adders_add_32ns_32ns_32_8_U1->din1(grp_fu_41_p1);
    adders_add_32ns_32ns_32_8_U1->ce(grp_fu_41_ce);
    adders_add_32ns_32ns_32_8_U1->dout(grp_fu_41_p2);
    adders_add_32ns_32ns_32_8_U2 = new adders_add_32ns_32ns_32_8<1,8,32,32,32>("adders_add_32ns_32ns_32_8_U2");
    adders_add_32ns_32ns_32_8_U2->clk(ap_clk);
    adders_add_32ns_32ns_32_8_U2->reset(ap_rst);
    adders_add_32ns_32ns_32_8_U2->din0(grp_fu_47_p0);
    adders_add_32ns_32ns_32_8_U2->din1(grp_fu_47_p1);
    adders_add_32ns_32ns_32_8_U2->ce(grp_fu_47_ce);
    adders_add_32ns_32ns_32_8_U2->dout(grp_fu_47_p2);

    SC_METHOD(thread_ap_clk_no_reset_);
    dont_initialize();
    sensitive << ( ap_clk.pos() );

    SC_METHOD(thread_ap_done);
    sensitive << ( ap_sig_cseq_ST_st16_fsm_15 );

    SC_METHOD(thread_ap_idle);
    sensitive << ( ap_start );
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );

    SC_METHOD(thread_ap_ready);
    sensitive << ( ap_sig_cseq_ST_st16_fsm_15 );

    SC_METHOD(thread_ap_return);
    sensitive << ( grp_fu_47_p2 );
    sensitive << ( ap_sig_cseq_ST_st16_fsm_15 );

    SC_METHOD(thread_ap_sig_bdd_32);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_bdd_57);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_bdd_66);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_bdd_83);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_cseq_ST_st16_fsm_15);
    sensitive << ( ap_sig_bdd_83 );

    SC_METHOD(thread_ap_sig_cseq_ST_st1_fsm_0);
    sensitive << ( ap_sig_bdd_32 );

    SC_METHOD(thread_ap_sig_cseq_ST_st8_fsm_7);
    sensitive << ( ap_sig_bdd_57 );

    SC_METHOD(thread_ap_sig_cseq_ST_st9_fsm_8);
    sensitive << ( ap_sig_bdd_66 );

    SC_METHOD(thread_grp_fu_41_ce);

    SC_METHOD(thread_grp_fu_41_p0);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( in1 );

    SC_METHOD(thread_grp_fu_41_p1);
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );
    sensitive << ( in3 );

    SC_METHOD(thread_grp_fu_47_ce);

    SC_METHOD(thread_grp_fu_47_p0);
    sensitive << ( tmp1_reg_62 );
    sensitive << ( ap_sig_cseq_ST_st9_fsm_8 );

    SC_METHOD(thread_grp_fu_47_p1);
    sensitive << ( in2 );
    sensitive << ( ap_sig_cseq_ST_st9_fsm_8 );

    SC_METHOD(thread_ap_NS_fsm);
    sensitive << ( ap_start );
    sensitive << ( ap_CS_fsm );

    SC_THREAD(thread_hdltv_gen);
    sensitive << ( ap_clk.pos() );

    ap_CS_fsm = "0000000000000001";
    static int apTFileNum = 0;
    stringstream apTFilenSS;
    apTFilenSS << "adders_sc_trace_" << apTFileNum ++;
    string apTFn = apTFilenSS.str();
    mVcdFile = sc_create_vcd_trace_file(apTFn.c_str());
    mVcdFile->set_time_unit(1, SC_PS);
    if (1) {
#ifdef __HLS_TRACE_LEVEL_PORT__
    sc_trace(mVcdFile, ap_clk, "(port)ap_clk");
    sc_trace(mVcdFile, ap_rst, "(port)ap_rst");
    sc_trace(mVcdFile, ap_start, "(port)ap_start");
    sc_trace(mVcdFile, ap_done, "(port)ap_done");
    sc_trace(mVcdFile, ap_idle, "(port)ap_idle");
    sc_trace(mVcdFile, ap_ready, "(port)ap_ready");
    sc_trace(mVcdFile, in1, "(port)in1");
    sc_trace(mVcdFile, in2, "(port)in2");
    sc_trace(mVcdFile, in3, "(port)in3");
    sc_trace(mVcdFile, ap_return, "(port)ap_return");
#endif
#ifdef __HLS_TRACE_LEVEL_INT__
    sc_trace(mVcdFile, ap_CS_fsm, "ap_CS_fsm");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st1_fsm_0, "ap_sig_cseq_ST_st1_fsm_0");
    sc_trace(mVcdFile, ap_sig_bdd_32, "ap_sig_bdd_32");
    sc_trace(mVcdFile, grp_fu_41_p2, "grp_fu_41_p2");
    sc_trace(mVcdFile, tmp1_reg_62, "tmp1_reg_62");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st8_fsm_7, "ap_sig_cseq_ST_st8_fsm_7");
    sc_trace(mVcdFile, ap_sig_bdd_57, "ap_sig_bdd_57");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st9_fsm_8, "ap_sig_cseq_ST_st9_fsm_8");
    sc_trace(mVcdFile, ap_sig_bdd_66, "ap_sig_bdd_66");
    sc_trace(mVcdFile, grp_fu_41_p0, "grp_fu_41_p0");
    sc_trace(mVcdFile, grp_fu_41_p1, "grp_fu_41_p1");
    sc_trace(mVcdFile, grp_fu_47_p0, "grp_fu_47_p0");
    sc_trace(mVcdFile, grp_fu_47_p1, "grp_fu_47_p1");
    sc_trace(mVcdFile, grp_fu_41_ce, "grp_fu_41_ce");
    sc_trace(mVcdFile, grp_fu_47_p2, "grp_fu_47_p2");
    sc_trace(mVcdFile, grp_fu_47_ce, "grp_fu_47_ce");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st16_fsm_15, "ap_sig_cseq_ST_st16_fsm_15");
    sc_trace(mVcdFile, ap_sig_bdd_83, "ap_sig_bdd_83");
    sc_trace(mVcdFile, ap_NS_fsm, "ap_NS_fsm");
#endif

    }
    mHdltvinHandle.open("adders.hdltvin.dat");
    mHdltvoutHandle.open("adders.hdltvout.dat");
}
Пример #29
0
iosc::iosc(sc_module_name name) : sc_module(name), mVcdFile(0) {
    grp_iosc_timerThread_fu_78 = new iosc_timerThread("grp_iosc_timerThread_fu_78");
    grp_iosc_timerThread_fu_78->ap_clk(clk);
    grp_iosc_timerThread_fu_78->ap_rst(reset);
    grp_iosc_timerThread_fu_78->iosc_second(grp_iosc_timerThread_fu_78_iosc_second);
    grp_iosc_timerThread_fu_78->iosc_second_ap_vld(grp_iosc_timerThread_fu_78_iosc_second_ap_vld);
    grp_iosc_timerThread_fu_78->iosc_timerCount_V_i(grp_iosc_timerThread_fu_78_iosc_timerCount_V_i);
    grp_iosc_timerThread_fu_78->iosc_timerCount_V_o(grp_iosc_timerThread_fu_78_iosc_timerCount_V_o);
    grp_iosc_timerThread_fu_78->iosc_timerCount_V_o_ap_vld(grp_iosc_timerThread_fu_78_iosc_timerCount_V_o_ap_vld);
    grp_iosc_iosThread_fu_104 = new iosc_iosThread("grp_iosc_iosThread_fu_104");
    grp_iosc_iosThread_fu_104->ap_clk(clk);
    grp_iosc_iosThread_fu_104->ap_rst(reset);
    grp_iosc_iosThread_fu_104->ctrl(grp_iosc_iosThread_fu_104_ctrl);
    grp_iosc_iosThread_fu_104->inSwitch(grp_iosc_iosThread_fu_104_inSwitch);
    grp_iosc_iosThread_fu_104->outLeds(grp_iosc_iosThread_fu_104_outLeds);
    grp_iosc_iosThread_fu_104->outLeds_ap_vld(grp_iosc_iosThread_fu_104_outLeds_ap_vld);
    grp_iosc_iosThread_fu_104->iosc_switchs_V(grp_iosc_iosThread_fu_104_iosc_switchs_V);
    grp_iosc_iosThread_fu_104->iosc_switchs_V_ap_vld(grp_iosc_iosThread_fu_104_iosc_switchs_V_ap_vld);
    grp_iosc_iosThread_fu_104->iosc_switchs_in_V(grp_iosc_iosThread_fu_104_iosc_switchs_in_V);
    grp_iosc_iosThread_fu_104->iosc_switchs_in_V_ap_vld(grp_iosc_iosThread_fu_104_iosc_switchs_in_V_ap_vld);
    grp_iosc_iosThread_fu_104->iosc_ctrl_in_V(grp_iosc_iosThread_fu_104_iosc_ctrl_in_V);
    grp_iosc_iosThread_fu_104->iosc_ctrl_in_V_ap_vld(grp_iosc_iosThread_fu_104_iosc_ctrl_in_V_ap_vld);
    grp_iosc_iosThread_fu_104->iosc_second_count_V_i(grp_iosc_iosThread_fu_104_iosc_second_count_V_i);
    grp_iosc_iosThread_fu_104->iosc_second_count_V_o(grp_iosc_iosThread_fu_104_iosc_second_count_V_o);
    grp_iosc_iosThread_fu_104->iosc_second_count_V_o_ap_vld(grp_iosc_iosThread_fu_104_iosc_second_count_V_o_ap_vld);
    grp_iosc_iosThread_fu_104->iosc_second(grp_iosc_iosThread_fu_104_iosc_second);

    SC_METHOD(thread_iosc_second);
    dont_initialize();
    sensitive << ( clk.pos() );

    SC_METHOD(thread_iosc_second_count_V);
    dont_initialize();
    sensitive << ( clk.pos() );

    SC_METHOD(thread_iosc_timerCount_V);
    dont_initialize();
    sensitive << ( clk.pos() );

    SC_METHOD(thread_outLeds);
    dont_initialize();
    sensitive << ( clk.pos() );

    SC_METHOD(thread_ap_CS_fsm);

    SC_METHOD(thread_ap_sig_bdd_62);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_cseq_ST_st2_fsm_1);
    sensitive << ( ap_sig_bdd_62 );

    SC_METHOD(thread_grp_iosc_iosThread_fu_104_ctrl);
    sensitive << ( ctrl );
    sensitive << ( iosc_ssdm_thread_M_iosThrea_load_fu_131_p1 );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_iosc_iosThread_fu_104_inSwitch);
    sensitive << ( inSwitch );
    sensitive << ( iosc_ssdm_thread_M_iosThrea_load_fu_131_p1 );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_iosc_iosThread_fu_104_iosc_second);
    sensitive << ( iosc_second );
    sensitive << ( iosc_ssdm_thread_M_iosThrea_load_fu_131_p1 );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_iosc_iosThread_fu_104_iosc_second_count_V_i);
    sensitive << ( iosc_second_count_V );
    sensitive << ( iosc_ssdm_thread_M_iosThrea_load_fu_131_p1 );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_iosc_timerThread_fu_78_iosc_timerCount_V_i);
    sensitive << ( iosc_timerCount_V );
    sensitive << ( iosc_ssdm_thread_M_iosThrea_load_fu_131_p1 );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_iosc_ssdm_thread_M_iosThrea_load_fu_131_p1);

    SC_THREAD(thread_hdltv_gen);
    sensitive << ( clk.pos() );

    static int apTFileNum = 0;
    stringstream apTFilenSS;
    apTFilenSS << "iosc_sc_trace_" << apTFileNum ++;
    string apTFn = apTFilenSS.str();
    mVcdFile = sc_create_vcd_trace_file(apTFn.c_str());
    mVcdFile->set_time_unit(1, SC_PS);
    if (1) {
#ifdef __HLS_TRACE_LEVEL_PORT__
    sc_trace(mVcdFile, clk, "(port)clk");
    sc_trace(mVcdFile, reset, "(port)reset");
    sc_trace(mVcdFile, ctrl, "(port)ctrl");
    sc_trace(mVcdFile, inSwitch, "(port)inSwitch");
    sc_trace(mVcdFile, outLeds, "(port)outLeds");
#endif
#ifdef __HLS_TRACE_LEVEL_INT__
    sc_trace(mVcdFile, iosc_second_count_V, "iosc_second_count_V");
    sc_trace(mVcdFile, iosc_second, "iosc_second");
    sc_trace(mVcdFile, iosc_timerCount_V, "iosc_timerCount_V");
    sc_trace(mVcdFile, iosc_ssdm_thread_M_iosThrea_load_fu_131_p1, "iosc_ssdm_thread_M_iosThrea_load_fu_131_p1");
    sc_trace(mVcdFile, ap_CS_fsm, "ap_CS_fsm");
    sc_trace(mVcdFile, grp_iosc_timerThread_fu_78_iosc_second, "grp_iosc_timerThread_fu_78_iosc_second");
    sc_trace(mVcdFile, grp_iosc_timerThread_fu_78_iosc_second_ap_vld, "grp_iosc_timerThread_fu_78_iosc_second_ap_vld");
    sc_trace(mVcdFile, grp_iosc_timerThread_fu_78_iosc_timerCount_V_i, "grp_iosc_timerThread_fu_78_iosc_timerCount_V_i");
    sc_trace(mVcdFile, grp_iosc_timerThread_fu_78_iosc_timerCount_V_o, "grp_iosc_timerThread_fu_78_iosc_timerCount_V_o");
    sc_trace(mVcdFile, grp_iosc_timerThread_fu_78_iosc_timerCount_V_o_ap_vld, "grp_iosc_timerThread_fu_78_iosc_timerCount_V_o_ap_vld");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_ctrl, "grp_iosc_iosThread_fu_104_ctrl");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_inSwitch, "grp_iosc_iosThread_fu_104_inSwitch");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_outLeds, "grp_iosc_iosThread_fu_104_outLeds");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_outLeds_ap_vld, "grp_iosc_iosThread_fu_104_outLeds_ap_vld");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_switchs_V, "grp_iosc_iosThread_fu_104_iosc_switchs_V");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_switchs_V_ap_vld, "grp_iosc_iosThread_fu_104_iosc_switchs_V_ap_vld");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_switchs_in_V, "grp_iosc_iosThread_fu_104_iosc_switchs_in_V");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_switchs_in_V_ap_vld, "grp_iosc_iosThread_fu_104_iosc_switchs_in_V_ap_vld");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_ctrl_in_V, "grp_iosc_iosThread_fu_104_iosc_ctrl_in_V");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_ctrl_in_V_ap_vld, "grp_iosc_iosThread_fu_104_iosc_ctrl_in_V_ap_vld");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_second_count_V_i, "grp_iosc_iosThread_fu_104_iosc_second_count_V_i");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_second_count_V_o, "grp_iosc_iosThread_fu_104_iosc_second_count_V_o");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_second_count_V_o_ap_vld, "grp_iosc_iosThread_fu_104_iosc_second_count_V_o_ap_vld");
    sc_trace(mVcdFile, grp_iosc_iosThread_fu_104_iosc_second, "grp_iosc_iosThread_fu_104_iosc_second");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st2_fsm_1, "ap_sig_cseq_ST_st2_fsm_1");
    sc_trace(mVcdFile, ap_sig_bdd_62, "ap_sig_bdd_62");
#endif

    }
    mHdltvinHandle.open("iosc.hdltvin.dat");
    mHdltvoutHandle.open("iosc.hdltvout.dat");
}
Пример #30
0
image_filter_Sobel::image_filter_Sobel(sc_module_name name) : sc_module(name), mVcdFile(0) {
    grp_image_filter_Filter2D_fu_56 = new image_filter_Filter2D("grp_image_filter_Filter2D_fu_56");
    grp_image_filter_Filter2D_fu_56->ap_clk(ap_clk);
    grp_image_filter_Filter2D_fu_56->ap_rst(ap_rst);
    grp_image_filter_Filter2D_fu_56->ap_start(grp_image_filter_Filter2D_fu_56_ap_start);
    grp_image_filter_Filter2D_fu_56->ap_done(grp_image_filter_Filter2D_fu_56_ap_done);
    grp_image_filter_Filter2D_fu_56->ap_idle(grp_image_filter_Filter2D_fu_56_ap_idle);
    grp_image_filter_Filter2D_fu_56->ap_ready(grp_image_filter_Filter2D_fu_56_ap_ready);
    grp_image_filter_Filter2D_fu_56->p_src_rows_V_read(grp_image_filter_Filter2D_fu_56_p_src_rows_V_read);
    grp_image_filter_Filter2D_fu_56->p_src_cols_V_read(grp_image_filter_Filter2D_fu_56_p_src_cols_V_read);
    grp_image_filter_Filter2D_fu_56->p_src_data_stream_V_dout(grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_dout);
    grp_image_filter_Filter2D_fu_56->p_src_data_stream_V_empty_n(grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_empty_n);
    grp_image_filter_Filter2D_fu_56->p_src_data_stream_V_read(grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_read);
    grp_image_filter_Filter2D_fu_56->p_dst_data_stream_V_din(grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_din);
    grp_image_filter_Filter2D_fu_56->p_dst_data_stream_V_full_n(grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_full_n);
    grp_image_filter_Filter2D_fu_56->p_dst_data_stream_V_write(grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_write);
    grp_image_filter_Filter2D_fu_56->p_kernel_val_0_V_1_read(grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_1_read);
    grp_image_filter_Filter2D_fu_56->p_kernel_val_0_V_2_read(grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_2_read);
    grp_image_filter_Filter2D_fu_56->p_kernel_val_1_V_0_read(grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_0_read);
    grp_image_filter_Filter2D_fu_56->p_kernel_val_1_V_2_read(grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_2_read);
    grp_image_filter_Filter2D_fu_56->p_kernel_val_2_V_0_read(grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_0_read);
    grp_image_filter_Filter2D_fu_56->p_kernel_val_2_V_1_read(grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_1_read);

    SC_METHOD(thread_ap_clk_no_reset_);
    dont_initialize();
    sensitive << ( ap_clk.pos() );

    SC_METHOD(thread_ap_done);
    sensitive << ( ap_done_reg );
    sensitive << ( grp_image_filter_Filter2D_fu_56_ap_done );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_ap_idle);
    sensitive << ( ap_start );
    sensitive << ( ap_sig_cseq_ST_st1_fsm_0 );

    SC_METHOD(thread_ap_ready);
    sensitive << ( grp_image_filter_Filter2D_fu_56_ap_done );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_ap_sig_bdd_21);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_bdd_43);
    sensitive << ( ap_start );
    sensitive << ( ap_done_reg );

    SC_METHOD(thread_ap_sig_bdd_75);
    sensitive << ( ap_CS_fsm );

    SC_METHOD(thread_ap_sig_cseq_ST_st1_fsm_0);
    sensitive << ( ap_sig_bdd_21 );

    SC_METHOD(thread_ap_sig_cseq_ST_st2_fsm_1);
    sensitive << ( ap_sig_bdd_75 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_ap_start);
    sensitive << ( grp_image_filter_Filter2D_fu_56_ap_start_ap_start_reg );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_full_n);
    sensitive << ( p_dst_data_stream_V_full_n );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_1_read);
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_2_read);
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_0_read);
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_2_read);
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_0_read);
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_1_read);
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_src_cols_V_read);
    sensitive << ( cols );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_dout);
    sensitive << ( p_src_data_stream_V_dout );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_empty_n);
    sensitive << ( p_src_data_stream_V_empty_n );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_grp_image_filter_Filter2D_fu_56_p_src_rows_V_read);
    sensitive << ( rows );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_p_dst_data_stream_V_din);
    sensitive << ( grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_din );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_p_dst_data_stream_V_write);
    sensitive << ( grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_write );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_p_src_data_stream_V_read);
    sensitive << ( grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_read );
    sensitive << ( ap_sig_cseq_ST_st2_fsm_1 );

    SC_METHOD(thread_ap_NS_fsm);
    sensitive << ( ap_CS_fsm );
    sensitive << ( ap_sig_bdd_43 );
    sensitive << ( grp_image_filter_Filter2D_fu_56_ap_done );

    ap_done_reg = SC_LOGIC_0;
    ap_CS_fsm = "01";
    grp_image_filter_Filter2D_fu_56_ap_start_ap_start_reg = SC_LOGIC_0;
    static int apTFileNum = 0;
    stringstream apTFilenSS;
    apTFilenSS << "image_filter_Sobel_sc_trace_" << apTFileNum ++;
    string apTFn = apTFilenSS.str();
    mVcdFile = sc_create_vcd_trace_file(apTFn.c_str());
    mVcdFile->set_time_unit(1, SC_PS);
    if (1) {
#ifdef __HLS_TRACE_LEVEL_PORT_HIER__
    sc_trace(mVcdFile, ap_clk, "(port)ap_clk");
    sc_trace(mVcdFile, ap_rst, "(port)ap_rst");
    sc_trace(mVcdFile, ap_start, "(port)ap_start");
    sc_trace(mVcdFile, ap_done, "(port)ap_done");
    sc_trace(mVcdFile, ap_continue, "(port)ap_continue");
    sc_trace(mVcdFile, ap_idle, "(port)ap_idle");
    sc_trace(mVcdFile, ap_ready, "(port)ap_ready");
    sc_trace(mVcdFile, rows, "(port)rows");
    sc_trace(mVcdFile, cols, "(port)cols");
    sc_trace(mVcdFile, p_src_data_stream_V_dout, "(port)p_src_data_stream_V_dout");
    sc_trace(mVcdFile, p_src_data_stream_V_empty_n, "(port)p_src_data_stream_V_empty_n");
    sc_trace(mVcdFile, p_src_data_stream_V_read, "(port)p_src_data_stream_V_read");
    sc_trace(mVcdFile, p_dst_data_stream_V_din, "(port)p_dst_data_stream_V_din");
    sc_trace(mVcdFile, p_dst_data_stream_V_full_n, "(port)p_dst_data_stream_V_full_n");
    sc_trace(mVcdFile, p_dst_data_stream_V_write, "(port)p_dst_data_stream_V_write");
#endif
#ifdef __HLS_TRACE_LEVEL_INT__
    sc_trace(mVcdFile, ap_done_reg, "ap_done_reg");
    sc_trace(mVcdFile, ap_CS_fsm, "ap_CS_fsm");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st1_fsm_0, "ap_sig_cseq_ST_st1_fsm_0");
    sc_trace(mVcdFile, ap_sig_bdd_21, "ap_sig_bdd_21");
    sc_trace(mVcdFile, ap_sig_bdd_43, "ap_sig_bdd_43");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_ap_start, "grp_image_filter_Filter2D_fu_56_ap_start");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_ap_done, "grp_image_filter_Filter2D_fu_56_ap_done");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_ap_idle, "grp_image_filter_Filter2D_fu_56_ap_idle");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_ap_ready, "grp_image_filter_Filter2D_fu_56_ap_ready");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_src_rows_V_read, "grp_image_filter_Filter2D_fu_56_p_src_rows_V_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_src_cols_V_read, "grp_image_filter_Filter2D_fu_56_p_src_cols_V_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_dout, "grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_dout");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_empty_n, "grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_empty_n");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_read, "grp_image_filter_Filter2D_fu_56_p_src_data_stream_V_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_din, "grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_din");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_full_n, "grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_full_n");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_write, "grp_image_filter_Filter2D_fu_56_p_dst_data_stream_V_write");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_1_read, "grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_1_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_2_read, "grp_image_filter_Filter2D_fu_56_p_kernel_val_0_V_2_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_0_read, "grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_0_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_2_read, "grp_image_filter_Filter2D_fu_56_p_kernel_val_1_V_2_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_0_read, "grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_0_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_1_read, "grp_image_filter_Filter2D_fu_56_p_kernel_val_2_V_1_read");
    sc_trace(mVcdFile, grp_image_filter_Filter2D_fu_56_ap_start_ap_start_reg, "grp_image_filter_Filter2D_fu_56_ap_start_ap_start_reg");
    sc_trace(mVcdFile, ap_sig_cseq_ST_st2_fsm_1, "ap_sig_cseq_ST_st2_fsm_1");
    sc_trace(mVcdFile, ap_sig_bdd_75, "ap_sig_bdd_75");
    sc_trace(mVcdFile, ap_NS_fsm, "ap_NS_fsm");
#endif

    }
}