X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fedu%2Fberkeley%2Fslipway%2Fdemos%2FDemoVisualizer.java;h=b2cdd2e311d022387350353e5276fef30b274d9c;hb=f17df62ee603a39a5ff8d499dfaf0a6d8fe19353;hp=29e8e2c227d7c7eaaf74960897e529f764238486;hpb=38d7a6cb576cc5ff4290e162e39c9129288deee1;p=slipway.git diff --git a/src/edu/berkeley/slipway/demos/DemoVisualizer.java b/src/edu/berkeley/slipway/demos/DemoVisualizer.java index 29e8e2c..b2cdd2e 100644 --- a/src/edu/berkeley/slipway/demos/DemoVisualizer.java +++ b/src/edu/berkeley/slipway/demos/DemoVisualizer.java @@ -12,6 +12,7 @@ import org.ibex.util.*; import java.io.*; import java.util.*; import static edu.berkeley.slipway.demos.Demo.*; +import static edu.berkeley.slipway.demos.ExperimentUtils.*; public class DemoVisualizer extends Frame implements KeyListener, MouseMotionListener, MouseListener { public static final int WIDTH = 40; @@ -21,12 +22,12 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis public static final Color RED = new Color(0xaa, 0x55, 0x55); public static final Color BLUE = new Color(0x55, 0x55, 0xaa); private final FpslicDevice dev; - private final SlipwayBoard drone; + private final SlipwayBoard board; int selx = -1; int sely = -1; - public DemoVisualizer(final FpslicDevice dev, final SlipwayBoard drone) { + public DemoVisualizer(final FpslicDevice dev, final SlipwayBoard board) { this.dev = dev; - this.drone = drone; + this.board = board; show(); addMouseMotionListener(this); addMouseListener(this); @@ -58,15 +59,28 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } - public void mouseReleased(MouseEvent e) { - } - public void keyTyped(KeyEvent k) { - } - public void keyReleased(KeyEvent k) { - } + public void mouseReleased(MouseEvent e) { } + public void keyTyped(KeyEvent k) { } + public void keyReleased(KeyEvent k) { } public void keyPressed(KeyEvent keyevent) { boolean scan = false; switch(keyevent==null ? '_' : keyevent.getKeyChar()) { + case 'C': { + if (selx==-1 || sely==-1) break; + FpslicDevice.Cell cell = dev.cell(selx, sely); + cell.ylut(0xB2); + drawCell(getGraphics(), selx, sely); + break; + } + case '0': { + if (selx==-1 || sely==-1) break; + FpslicDevice.Cell cell = dev.cell(selx, sely); + cell.xlut(0x00); + cell.ylut(0x00); + drawCell(getGraphics(), selx, sely); + dev.flush(); + break; + } case '1': { if (selx==-1 || sely==-1) break; FpslicDevice.Cell cell = dev.cell(selx, sely); @@ -77,7 +91,7 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis break; } case 'i': { - System.out.println("interrupt_count: " + drone.readInterruptCount()); + System.out.println("interrupt_count: " + board.readInterruptCount()); break; } case 'x': { @@ -158,76 +172,25 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis //enabled = !enabled; try { for(int cap=0; cap<15; cap++) { - drain(dev, drone); + drain(dev, board); try { Thread.sleep(100); } catch (Exception e) { } - //showit(dev, drone, this); - fill(dev, drone, cap); - drone.readInterruptCount(); + //showit(dev, board, this); + fill(dev, board, cap); + board.readInterruptCount(); long now = System.currentTimeMillis(); try { Thread.sleep(4000); } catch (Exception e) { } - int count = drone.readInterruptCount(); + int count = board.readInterruptCount(); long now2 = System.currentTimeMillis(); System.out.println(cap + " , " + (((float)count * (2*2*2*2*2*2*2*2*2*1000))/(now2-now))); } } catch (Exception e) { e.printStackTrace(); } break; } - case 'C': { - if (selx==-1 || sely==-1) break; - FpslicDevice.Cell cell = dev.cell(selx, sely); - cell.ylut(0xB2); - drawCell(getGraphics(), selx, sely); - break; - } - case '0': { - if (selx==-1 || sely==-1) break; - FpslicDevice.Cell cell = dev.cell(selx, sely); - cell.xlut(0x00); - cell.ylut(0x00); - drawCell(getGraphics(), selx, sely); - dev.flush(); - break; - } } if (!scan) return; - showit(dev, drone, this); - } - public void mousePressed(MouseEvent e) { - final FpslicDevice.Cell cell = dev.cell(selx, sely); - if (cell==null) return; - final int old = cell.c(); - SlipwayBoard.ByteCallback bc = new SlipwayBoard.ByteCallback() { - public void call(byte b) throws Exception { - boolean y = (b & 0x80) != 0; - //cell.c(old); - Graphics g = getGraphics(); - g.setFont(new Font("sansserif", Font.BOLD, 14)); - g.setColor(Color.white); - //g.drawString("X=0", left(cell) + 10, top(cell) + 20); - //g.drawString("X=1", left(cell) + 10, top(cell) + 20); - //g.setColor(Color.white); - //g.drawString("Y=0", left(cell) + 8, top(cell) + 35); - //g.drawString("Y=1", left(cell) + 8, top(cell) + 35); - //g.setColor(RED); - //g.drawString("X="+(x?"1":"0"), left(cell) + 10, top(cell) + 20); - String v = (cell.c()==YLUT ? "Y" : cell.c()==XLUT ? "X" : "C"); - g.drawString(v+"="+(y?"0":"1"), left(cell) + 8, top(cell) + 35); - g.setColor(BLUE); - g.drawString(v+"="+(y?"1":"0"), left(cell) + 8, top(cell) + 35); - } }; - /* - try { - scan(dev, cell, NONE, true); - drone.readBus(bc); - //scan(dev, cell, XLUT, true); - //boolean x = (drone.readBus() & 0x80) != 0; - scan(dev, cell, NONE, false); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - */ + showit(dev, board, this); } - + public void mousePressed(MouseEvent e) { } public void mouseMoved(MouseEvent e) { int x = e.getX(); int y = e.getY(); @@ -237,20 +200,9 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis FpslicDevice.Cell cell = dev.cell(cx, cy); selx = -1; sely = -1; - /* - drawCell(getGraphics(), cx, cy); - drawSector(getGraphics(), dev.cell(cx, cy).sector()); - */ } selx = (x-20)/(WIDTH+2); sely = (23 - (y-20)/(HEIGHT+2))+1; - /* - FpslicDevice.Cell cell = dev.cell(selx, sely); - if (selx >= 0 && selx < 24 && sely >= 0 && sely < 24) { - drawCell(getGraphics(), selx, sely); - drawSector(getGraphics(), dev.cell(selx, sely).sector()); - } - */ } public void mouseDragged(MouseEvent e) { mousePressed(e); } public void paint(Graphics g) { @@ -264,25 +216,9 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis for(int x=0; x<=23; x+=4) for(int y=23; y>=0; y-=4) drawSector(g, dev.cell(x, y).sector()); - /* - g.setColor(BLUE); - g.drawString("Ready", (5*(WIDTH+2))+20, 40); - g.setColor(RED); - g.drawString("Send", (3*(WIDTH+2))+20, 40); - g.setColor(BLUE); - */ refresh(); } - public void refresh() { - Graphics g = getGraphics(); - /* - int data = drone.readBus() & 0xff; - for(int i=0; i<8; i++) { - g.setColor((data & (1<=0; yy--) { - //for(int xx=5; xx<=PIPELEN-1; xx++) { - //for(int yy=21; yy<=22; yy++) { + final Graphics g = vis.getGraphics(); + g.setFont(new Font("sansserif", Font.BOLD, 24)); + for(int xx=0; xx<=dev.getWidth()-2; xx++) { + for(int yy=dev.getHeight()-1; yy>=0; yy--) { final int x = xx; final int y = yy; final FpslicDevice.Cell cell = dev.cell(x, y); @@ -446,21 +379,15 @@ public class DemoVisualizer extends Frame implements KeyListener, MouseMotionLis public void call(byte b) throws Exception { boolean v = (b & 0x80) != 0; vis.drawCell(g, x, y, v?red:green); - //if (x==PIPELEN-1 && y==22) System.out.println("time: " + (System.currentTimeMillis()-then)); } }; - /* - scan(dev, cell, NONE, true); try { - drone.readBus(bc); - //scan(dev, cell, YLUT, false); - cell.v(L3, false); - dev.cell(x, 15).h(L3, false); - dev.cell(x, 15).v(L3, false); + ExperimentUtils.scan(cell, YLUT, true); + board.readFpgaData(bc); + ExperimentUtils.scan(cell, NONE, false); } catch (IOException ex) { throw new RuntimeException(ex); } - */ } } }