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
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)
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)