示例#1
0
def run():
    global was_m_rd, was_m_rd_data, bytes_written
    global was2_m_rd, was2_m_rd_data

    if peek('m_local_rd') == 1:
        m_local_rd_addr = peek('m_local_rd_addr')
        if m_local_rd_addr in masterRam:
            Data = masterRam[m_local_rd_addr]
        else:
            Data = string.replace('0xRfReRdRcRbRaR9R8R7R6R5R4R3R2R1R0', 'R',
                                  '%x' % (access[0] & 0xf))
            access[0] += 1
        force('m_local_rd_addr_ok', '1')
        logs.log_info('masterRam read %x -> "%s" %s' %
                      (m_local_rd_addr, '', Data))
    else:
        force('m_local_rd_addr_ok', '0')

    if peek('m_local_wr') == 1:
        m_local_wr_addr = peek('m_local_wr_addr')
        m_local_wr_data = peek('m_local_wr_data')
        m_local_wstrb = peek('m_local_wstrb')
        force('m_local_wr_ok', '1')
        bytes_written += logs.countOnes(m_local_wstrb)
        logs.log_info(
            'masterRam write %x <- %x (wstrb=%x) bytes_written=%d ' %
            (m_local_wr_addr, m_local_wr_data, m_local_wstrb, bytes_written))


#        mactive.masterWrite(m_local_wr_addr,m_local_wr_data,m_local_wstrb)
    else:
        force('m_local_wr_ok', '0')

    if was_m_rd:
        force('m_local_rd_data_ok', was_m_rd)
        force('m_local_rd_data', was_m_rd_data)
    else:
        force('m_local_rd_data_ok', 0)
        force('m_local_rd_data', 0)

    was_m_rd = was2_m_rd
    was_m_rd_data = was2_m_rd_data

    was2_m_rd = peek('m_local_rd')
    if peek('m_local_rd') == 1:
        was2_m_rd_data = Data
示例#2
0
文件: vcd.py 项目: psumesh/vlsistuff
def negedge(Time):
    for Panic in Panics:
        if (Panic in Values) and (Values[Panic] == '1'):
            logs.log_error('panic %s fired' % Panic)
    awvalid = peek('awvalid')
    awready = peek('awready')
    if (awvalid == 1) and (awready == 1):
        awaddr = peek('awaddr')
        awsize = peek('awsize')
        awlen = peek('awlen')
        Totals['aw'] += (awlen + 1) * (1 << awsize)
        logs.log_info('#%d aw addr=%x size=%s len=%s totaw=%d ' %
                      (Time, awaddr, awsize, awlen, Totals['aw']))

    if (peek('wvalid') == 1) and (peek('wready') == 1):
        wstrb = peek('wstrb')
        wdata = peek('wdata')
        wlast = peek('wlast')
        wlast = peek('wlast')
        bytes = logs.countOnes(wstrb)
        Totals['dw'] += bytes
        logs.log_info('#%d wd data=%x wstrb=%x  last=%d totdw=%d' %
                      (Time, wdata, wstrb, wlast, Totals['dw']))

    arvalid = peek('arvalid')
    arready = peek('arready')
    if (arvalid == 1) and (arready == 1):
        araddr = peek('araddr')
        arsize = peek('arsize')
        arlen = peek('arlen')
        arid = peek('arid')
        Keep['arid'] = arsize
        Totals['ar'] += (arlen + 1) * (1 << awsize)
        logs.log_info('#%d ar addr=%x size=%s len=%s totar=%d' %
                      (Time, araddr, arsize, arlen, Totals['ar']))

    if (peek('rvalid') == 1) and (peek('rready') == 1):
        rdata = peek('rdata')
        rlast = peek('rlast')
        rid = peek('rid')
        Totals['rd'] += (1 << Keep[rid])
        logs.log_info('#%d rd data=%x rlast=%x totrd=%d' %
                      (Time, rdata, rlast, Totals['rd']))

    monitorCommands(Time)
示例#3
0
文件: vcd.py 项目: ocakgun/vlsistuff
def negedge():
    Time = veri.stime()
    awvalid = peeklocal('awvalid')
    awready = peeklocal('awready')
    if (awvalid == 1) and (awready == 1):
        veri.force('aaa', str(Time & 0x1f))
        veri.force('bbb', str(~Time & 0x1f))
        awaddr = peeklocal('awaddr')
        awsize = peeklocal('awsize')
        awlen = peeklocal('awlen')
        Totals['aw'] += (awlen + 1) * (1 << awsize)
        logs.log_info('#%d aw addr=%x size=%s len=%s totaw=%d ' %
                      (Time, awaddr, awsize, awlen, Totals['aw']))

    if (peeklocal('wvalid') == 1) and (peeklocal('wready') == 1):
        wstrb = peeklocal('wstrb')
        wdata = peeklocal('wdata')
        wlast = peeklocal('wlast')
        wlast = peeklocal('wlast')
        bytes = logs.countOnes(wstrb)
        Totals['dw'] += bytes
        logs.log_info('#%d wd data=%x wstrb=%x  last=%d totdw=%d' %
                      (Time, wdata, wstrb, wlast, Totals['dw']))

    arvalid = peeklocal('arvalid')
    arready = peeklocal('arready')
    if (arvalid == 1) and (arready == 1):
        araddr = peeklocal('araddr')
        arsize = peeklocal('arsize')
        arlen = peeklocal('arlen')
        arid = peeklocal('arid')
        Keep['arid'] = arsize
        Totals['ar'] += (arlen + 1) * (1 << awsize)
        logs.log_info('#%d ar addr=%x size=%s len=%s totar=%d' %
                      (Time, araddr, arsize, arlen, Totals['ar']))

    if (peeklocal('rvalid') == 1) and (peeklocal('rready') == 1):
        rdata = peeklocal('rdata')
        rlast = peeklocal('rlast')
        rid = peeklocal('rid')
        Totals['rd'] += (1 << Keep[rid])
        logs.log_info('#%d rd data=%x rlast=%x totrd=%d' %
                      (Time, rdata, rlast, Totals['rd']))

    monitorCommands(Time)