-
Notifications
You must be signed in to change notification settings - Fork 95
/
labs.json
executable file
·1 lines (1 loc) · 255 KB
/
labs.json
1
{"/lab7.html": "{\"tests\":{\"test\":\"36036\"},\"state\":{\"Lab 7\":\"////////////////////////////////////////////////////////////////////////\\n/// TinyOS: Simple OS demo for 6.004 Beta processor\\n////////////////////////////////////////////////////////////////////////\\n\\n// This program implements a primitive OS kernel for the Beta\\n// along with three simple user-mode processes hooked together thru\\n// a semaphore-controlled bounded buffer.\\n//\\n// The three processes -- and the kernel -- share an address space;\\n// each is allocated its own stack (for a total of 4 stacks), and\\n// each process has its own virtual machine state (ie, registers).\\n// The latter is stored in the kernel ProcTbl, which contains a data\\n// structure for each process.\\n\\n// Here's an unretouched sample of output from a BSIM run of the demo:\\n// \\n// Start typing, Bunky.\\n// \\n// 00000000> hello\\n// ELLOHAY\\n// \\n\\n// The 'null' checkoff to keep online system happy\\n// DON'T EDIT THE NEXT TWO LINES\\n.pcheckoff \\\"jsinput\\\" \\\"Lab 7\\\" 36036\\n.verify 0 0\\n\\n.include \\\"beta.uasm\\\" // Define Beta instructions, etc.\\n.options clock tty\\n\\n// The following code is a primitive but complete timesharing kernel\\n// sufficient to run three processes, plus handlers for a small\\n// selection of supervisor calls (SVCs) to perform OS services.\\n// The latter include simple console I/O and semaphores.\\n//\\n// All kernel code is executed with the Kernel-mode bit of the\\n// program counter -- its high-order bit --- set. This causes\\n// new interrupt requests to be deferred until the kernel returns\\n// to user mode.\\n\\n// Interrupt vectors:\\n\\n. = VEC_RESET\\n BR(I_Reset) // on Reset (start-up)\\n. = VEC_II\\n BR(I_IllOp) // on Illegal Instruction (eg SVC)\\n. = VEC_CLK\\n BR(I_Clk) // On clock interrupt\\n. = VEC_KBD\\n BR(I_Kbd) // on Keyboard interrupt\\n. = VEC_MOUSE\\n BR(I_BadInt) // on mouse interrupt\\n\\n// The following macro is the first instruction to be entered for each\\n// asynchronous I/O interrupt handler. It adjusts XP (the interrupted\\n// PC) to account for the instruction skipped due to the pipeline bubble.\\n.macro ENTER_INTERRUPT() SUBC(XP,4,XP)\\n\\n////////////////////////////////////////////////////////////////////////\\n/// Kernel Interrupt support code\\n/// We use a slightly simpler (and less efficient) scheme here from\\n/// that in the text. On kernel entry, the ENTIRE state -- 31\\n/// registers -- of the interrupted program is saved in a designated\\n/// region of kernel memory (\\\"UserMState\\\", below). This entire state\\n/// is then restored on return to the interrupted program.\\n////////////////////////////////////////////////////////////////////////\\n\\n// Here's the SAVED STATE of the interrupted process, while we're\\n// processing an interrupt.\\nUserMState:\\n STORAGE(32) // R0-R31... (PC is in XP!)\\n\\n// Here are macros to SAVE and RESTORE state -- 31 registers -- from\\n// the above storage.\\n\\n// N.B. - The following macro assumes that R0 is a macro for\\n// the integer 0, R1 is a macro for the integer 1, etc.\\n.macro SS(R) ST(R, UserMState+(4*R)) // (Auxiliary macro)\\n\\n.macro SAVESTATE() {\\n SS(0) SS(1) SS(2) SS(3) SS(4) SS(5) SS(6) SS(7)\\n SS(8) SS(9) SS(10) SS(11) SS(12) SS(13) SS(14) SS(15)\\n SS(16) SS(17) SS(18) SS(19) SS(20) SS(21) SS(22) SS(23)\\n SS(24) SS(25) SS(26) SS(27) SS(28) SS(29) SS(30) }\\n\\n// See comment for SS(R), above\\n.macro RS(R) LD(UserMState+(4*R), R) // (Auxiliary macro)\\n\\n.macro RESTORESTATE() {\\n RS(0) RS(1) RS(2) RS(3) RS(4) RS(5) RS(6) RS(7)\\n RS(8) RS(9) RS(10) RS(11) RS(12) RS(13) RS(14) RS(15)\\n RS(16) RS(17) RS(18) RS(19) RS(20) RS(21) RS(22) RS(23)\\n RS(24) RS(25) RS(26) RS(27) RS(28) RS(29) RS(30) }\\n\\nKStack: LONG(.+4) // Pointer to ...\\n STORAGE(256) // ... the kernel stack.\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Handler for unexpected interrupts\\n//////////////////////////////////////////////////////////////////////////////\\n\\nI_BadInt:\\n CALL(KWrMsg) // Type out an error msg,\\n .text \\\"Unexpected interrupt...\\\"\\n HALT()\\n \\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Handler for Illegal Instructions\\n/// (including SVCs)\\n//////////////////////////////////////////////////////////////////////////////\\n\\nI_IllOp:\\n SAVESTATE() // Save the machine state.\\n LD(KStack, SP) // Install kernel stack pointer.\\n\\n LD(XP, -4, r0) // Fetch the illegal instruction\\n SHRC(r0, 26, r0) // Extract the 6-bit OPCODE\\n SHLC(r0, 2, r0) // Make it a WORD (4-byte) index\\n LD(r0, UUOTbl, r0) // Fetch UUOTbl[OPCODE]\\n JMP(r0) // and dispatch to the UUO handler.\\n\\n.macro UUO(ADR) LONG(ADR+PC_SUPERVISOR) // Auxiliary Macros\\n.macro BAD() UUO(UUOError)\\n\\nUUOTbl: BAD() UUO(SVC_UUO) BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n BAD() BAD() BAD() BAD()\\n\\n// Here's the handler for truly unused opcodes (not SVCs):\\nUUOError:\\n CALL(KWrMsg) // Type out an error msg,\\n .text \\\"Illegal instruction \\\"\\n LD(xp, -4, r0) // giving hex instr and location;\\n CALL(KHexPrt)\\n CALL(KWrMsg)\\n .text \\\" at location 0x\\\"\\n MOVE(xp,r0)\\n CALL(KHexPrt)\\n CALL(KWrMsg)\\n .text \\\"! .....\\\"\\n HALT() // Then crash system.\\n\\n// Here's the common exit sequence from Kernel interrupt handlers:\\n// Restore registers, and jump back to the interrupted user-mode\\n// program.\\n\\nI_Rtn: RESTORESTATE()\\nkexit: JMP(XP) // Good place for debugging breakpoint!\\n\\n// Alternate return from interrupt handler which BACKS UP PC,\\n// and calls the scheduler prior to returning. This causes\\n// the trapped SVC to be re-executed when the process is\\n// eventually rescheduled...\\n\\nI_Wait: LD(UserMState+(4*30), r0) // Grab XP from saved MState,\\n SUBC(r0, 4, r0) // back it up to point to\\n ST(r0, UserMState+(4*30)) // SVC instruction\\n\\n CALL(Scheduler) // Switch current process,\\n BR(I_Rtn) // and return to (some) user.\\n\\n// Sub-handler for SVCs, called from I_IllOp on SVC opcode:\\n\\nSVC_UUO:\\n LD(XP, -4, r0) // The faulting instruction.\\n ANDC(r0,0x7,r0) // Pick out low bits,\\n SHLC(r0,2,r0) // make a word index,\\n LD(r0,SVCTbl,r0) // and fetch the table entry.\\n JMP(r0)\\n\\nSVCTbl: UUO(HaltH) // SVC(0): User-mode HALT instruction\\n UUO(WrMsgH) // SVC(1): Write message\\n UUO(WrChH) // SVC(2): Write Character\\n UUO(GetKeyH) // SVC(3): Get Key\\n UUO(HexPrtH) // SVC(4): Hex Print\\n UUO(WaitH) // SVC(5): Wait(S) ,,, S in R3\\n UUO(SignalH) // SVC(6): Signal(S), S in R3\\n UUO(YieldH) // SVC(7): Yield()\\n\\n////////////////////////////////////////////////////////////////////////\\n// Keyboard handling\\n////////////////////////////////////////////////////////////////////////\\n\\nKey_State: LONG(0) // 1-char keyboard buffer.\\n\\nGetKeyH: // return key code in r0, or block\\n LD(Key_State, r0)\\n BEQ(r0, I_Wait) // on 0, just wait a while\\n\\n// key ready, return it and clear the key buffer\\n LD(Key_State, r0) // Fetch character to return\\n ST(r0,UserMState) // return it in R0.\\n ST(r31, Key_State) // Clear kbd buffer\\n BR(I_Rtn) // and return to user.\\n\\n\\n// Interrupt side: read key, store it into buffer.\\n// NB: This is a LIGHTWEIGHT interrupt handler, which doesn't\\n// do a full state save. It doesn't have to, since (1) it\\n// only uses R0, and (2) it always returns to the same process\\n// it interrupts. By not saving all state, it manages\\n// to save a LOT of time: 20 STs on entry, 30 LDs on exit:\\nI_Kbd: ENTER_INTERRUPT() // Adjust the PC!\\n ST(r0, UserMState) // Save ONLY r0...\\n RDCHAR() // Read the character,\\n ST(r0,Key_State) // save its code.\\n LD(UserMState, r0) // restore r0, and\\n JMP(xp) // and return to the user.\\n\\nWrChH: LD(UserMState,r0) // The user's R0\\n WRCHAR() // Write out the character,\\n BR(I_Rtn) // then return\\n\\nWrMsgH: LD(UserMState+(4*30), r0) // Fetch interrupted XP, then\\n CALL(KMsgAux) // print text following SVC.\\n ST(r0,UserMState+(4*30)) // Store updated XP.\\n BR(I_Rtn)\\n\\n// Handler for HexPrt(): print hex value from R0\\nHexPrtH:\\n LD(UserMState,r0) // Load user R0\\n CALL(KHexPrt) // Print it out \\n BR(I_Rtn) // And return to user.\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Timesharing: 3-process round-robin scheduler\\n//////////////////////////////////////////////////////////////////////////////\\n\\n// ProcTbl contains a 31-word data structure for each process,\\n// including R0-R30. R31, which always contains 0, is omitted.\\n// The XP (R30) value stored for each process is the PC,\\n// and points to the next instruction to be executed.\\n\\n// The kernel variable CurProc always points to the ProcTbl entry\\n// corresponding to the \\\"swapped in\\\" process.\\n\\nProcTbl:\\n STORAGE(29) // Process 0: R0-R28\\n LONG(P0Stack) // Process 0: SP\\n LONG(P0Start) // Process 0: XP (= PC)\\n\\n STORAGE(29) // Process 1: R0-R28\\n LONG(P1Stack) // Process 1: SP\\n LONG(P1Start) // Process 1: XP (= PC)\\n\\n STORAGE(29) // Process 2: R0-R28\\n LONG(P2Stack) // Process 2: SP\\n LONG(P2Start) // Process 2: XP (= PC)\\n\\nCurProc: LONG(ProcTbl)\\n\\n// Schedule a new process.\\n// Swaps current process out of UserMState, swaps in a new one.\\n\\nScheduler:\\n PUSH(LP)\\n CMOVE(UserMState, r0)\\n LD(CurProc, r1)\\n CALL(CopyMState) // Copy UserMState -> CurProc\\n\\n LD(CurProc, r0)\\n ADDC(r0, 4*31, r0) // Increment to next process..\\n CMPLTC(r0,CurProc, r1) // End of ProcTbl?\\n BT(r1, Sched1) // Nope, its OK.\\n CMOVE(ProcTbl, r0) // yup, back to Process 0.\\nSched1: ST(r0, CurProc) // Here's the new process;\\n\\n ADDC(r31, UserMState, r1) // Swap new process in.\\n CALL(CopyMState)\\n LD(Tics, r0) // Reset TicsLeft counter\\n ST(r0, TicsLeft) // to Tics.\\n POP(LP)\\n JMP(LP) // and return to caller.\\n\\n// Copy a 31-word MState structure from the address in r0 to that in r1\\n// Trashes r2, leaves r0-r1 unchanged.\\n.macro CM(N) LD(r0, N*4, r2) ST(r2, N*4, r1) // Auxiliary macro\\nCopyMState:\\n CM(0) CM(1) CM(2) CM(3) CM(4) CM(5) CM(6) CM(7)\\n CM(8) CM(9) CM(10) CM(11) CM(12) CM(13) CM(14) CM(15)\\n CM(16) CM(17) CM(18) CM(19) CM(20) CM(21) CM(22) CM(23)\\n CM(24) CM(25) CM(26) CM(27) CM(28) CM(29) CM(30)\\n JMP(LP)\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Clock interrupt handler: Invoke the scheduler.\\n//////////////////////////////////////////////////////////////////////////////\\n\\n/// Here's the deal:\\n/// Each compute-bound process gets a quantum consisting of TICS clock\\n/// interrupts, where TICS is the number stored in the variable Tics\\n/// below. To avoid overhead, we do a full state save only when the\\n/// clock interrupt will cause a process swap, using the TicsLeft\\n/// variable as a counter.\\n/// We do a LIMITED state save (r0 only) in order to free up a register,\\n/// then count down TicsLeft stored below. When it becomes negative,\\n/// we do a FULL state save and call the scheduler; otherwise we just\\n/// return, having burned only a few clock cycles on the interrupt.\\n/// RECALL that the call to Scheduler sets TicsLeft to Tics, giving\\n/// the newly-swapped-in process a full quantum.\\n\\nTics: LONG(2) // Number of clock interrupts/quantum.\\nTicsLeft: LONG(0) // Number of tics left in this quantum\\n\\nI_Clk: ENTER_INTERRUPT() // Adjust the PC!\\n ST(r0, UserMState) // Save R0 ONLY, for now.\\n LD(TicsLeft, r0) // Count down TicsLeft\\n SUBC(r0,1,r0)\\n ST(r0, TicsLeft) // Now there's one left.\\n CMPLTC(r0, 0, r0) // If new value is negative, then\\n BT(r0, DoSwap) // swap processes.\\n LD(UserMState, r0) // Else restore r0, and\\n JMP(XP) // return to same user.\\n\\nDoSwap: LD(UserMState, r0) // Restore r0, so we can do a\\n SAVESTATE() // FULL State save.\\n LD(KStack, SP) // Install kernel stack pointer.\\n CALL(Scheduler) // Swap it out!\\n BR(I_Rtn) // and return to next process.\\n\\n\\n////////////////////////////////////////////////////////////////////////\\n/// yield() SVC: voluntarily give up rest of time quantum.\\n////////////////////////////////////////////////////////////////////////\\n\\nYieldH: CALL(Scheduler) // Schedule next process, and\\n BR(I_Rtn) // and return to user.\\n\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Here on start-up (reset): Begin executing process 0.\\n//////////////////////////////////////////////////////////////////////////////\\n\\nI_Reset:\\n CMOVE(P0Stack, SP)\\n CMOVE(P0Start, XP)\\n JMP(XP)\\n\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// SVC Sub-handler for user-mode HALTs\\n//////////////////////////////////////////////////////////////////////////////\\n\\nHaltH: BR(I_Wait) // SVC(0): User-mode HALT SVC\\n\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Kernel support for User-mode Semaphores\\n//////////////////////////////////////////////////////////////////////////////\\n\\n\\n/// User-mode access: macrodefinitions. Semaphore adr passed in r3,\\n/// which is saved and restored appropriately by macros:\\n/// NB: Wait() and Signal() SVCs each pass the address of a semaphore\\n/// in R3. Since the Illegal Opcode handler code doesn't change any\\n/// registers except R0, the R3 semaphore address is still intact\\n/// when we enter these handlers:\\n\\n/// Kernel handler: wait(s):\\n/// ADDRESS of semaphore s in r3.\\n\\nWaitH: LD(r3,0,r0) // Fetch semaphore value.\\n BEQ(r0,I_Wait) // If zero, block..\\n\\n SUBC(r0,1,r0) // else, decrement and return.\\n ST(r0,0,r3) // Store back into semaphore\\n BR(I_Rtn) // and return to user.\\n\\n/// Kernel handler: signal(s):\\n/// ADDRESS of semaphore s in r3.\\n\\nSignalH:LD(r3,0,r0) // Fetch semaphore value.\\n ADDC(r0,1,r0) // increment it,\\n ST(r0,0,r3) // Store new semaphore value.\\n BR(I_Rtn) // and return to user.\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// Kernel-callable Utility Routines\\n/// NB: These routines use PRIVILEDGED instructions; hence they can be\\n/// called directly only from kernel code (ie, with the high-PC-bit\\n/// set). Use SVC traps to accomplish the same functions from user-\\n/// level code.\\n//////////////////////////////////////////////////////////////////////////////\\n\\n\\n/// Hex print procedure: prints longword in R0\\n\\nHexDig: LONG('0') LONG('1') LONG('2') LONG('3') LONG('4') LONG('5')\\n LONG('6') LONG('7') LONG('8') LONG('9') LONG('A') LONG('B')\\n LONG('C') LONG('D') LONG('E') LONG('F')\\n\\nKHexPrt:\\n PUSH(r0) // Saves all regs, incl r0\\n PUSH(r1)\\n PUSH(r2)\\n PUSH(lp)\\n\\n CMOVE(8, r2)\\n MOVE(r0,r1)\\nKHexPr1:\\n SRAC(r1,28,r0) // Extract digit into r0.\\n MULC(r1, 16, r1) // Next loop, next nybble...\\n ANDC(r0, 0xF, r0)\\n MULC(r0, 4, r0)\\n LD(r0, HexDig, r0)\\n WRCHAR ()\\n SUBC(r2,1,r2)\\n BNE(r2,KHexPr1)\\n\\n POP(lp)\\n POP(r2)\\n POP(r1)\\n POP(r0)\\n RTN()\\n\\n////////////////////////////////////////////////////////////////////////\\n/// Procedure to print out a zero-terminated message, packed one ///\\n/// char/byte. Char data follows branch; returns to next 4-byte ///\\n/// aligned location. Saves all regs. ///\\n////////////////////////////////////////////////////////////////////////\\n\\nKWrMsg:\\n PUSH (R0)\\n MOVE(LP, R0)\\n CALL(KMsgAux)\\n MOVE(R0, LP)\\n POP (R0)\\n RTN()\\n\\n\\n// Auxiliary routine for sending a message to the console.\\n// On entry, R0 should point to data; on return, R0 holds next\\n// longword aligned location after data.\\n// Note: Must be called while in supervisor mode.\\n\\nKMsgAux:\\n PUSH(r1)\\n PUSH(r2)\\n PUSH(r3)\\n PUSH(r4)\\n\\n MOVE (R0, R1)\\n\\nWrWord: LD (R1, 0, R2) // Fetch a 4-byte word into R2\\n ADDC (R1, 4, R1) // Increment word pointer\\n CMOVE(4,r3) // Byte/word counter\\n\\nWrByte: ANDC(r2, 0x7F, r0) // Grab next byte -- LOW end first!\\n BEQ(r0, WrEnd) // Zero byte means end of text.\\n WRCHAR() // Print it.\\n SRAC(r2,8,r2) // Shift out this byte\\n SUBC(r3,1,r3) // Count down... done with this word?\\n BNE(r3,WrByte) // Nope, continue.\\n BR(WrWord) // Yup, on to next.\\n\\nWrEnd:\\n MOVE (R1, R0)\\n POP(r4)\\n POP(r3)\\n POP(r2)\\n POP(r1)\\n RTN()\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// User-mode code. Includes 3 processes:\\n///\\n/// PROCESS 0:\\n/// (1) Prompts the user for new lines of input.\\n/// (2) Reads lines from the keyboard (using the GetKey() SVC),\\n/// and pipes it to PROCESS 1 through a bounded buffer.\\n/// It does this using the Send procedure.\\n///\\n/// PROCESS 1:\\n/// Reads lines of input from PROCESS 0, using the Rcv procedure,\\n/// translates them to Piglatin, and types them out (using\\n/// the SVCs WrCh() and WrMsg().\\n///\\n/// Note that Send and Rcv, used by processes 0 and 1, communicate\\n/// using a bounded buffer and synchronize using semaphores\\n/// implemented as the Wait(S) and Signal(S) SVCs.\\n///\\n/// PROCESS 2:\\n/// On each quantum, simply increments a counter and uses the Yield()\\n/// SVC to give up the remainder of its quantum. The resulting\\n/// count thus becomes a count of the number of quanta which have\\n/// been allocated to each process. This count (in HEX) is used\\n/// as the prompt typed by process 0.\\n///\\n//////////////////////////////////////////////////////////////////////////////\\n\\n/// Definitions of macros used to interface with Kernel code:\\n\\n.macro Halt() SVC(0) // Stop a process.\\n\\n.macro WrMsg() SVC(1) // Write the 0-terminated msg following SVC\\n.macro WrCh() SVC(2) // Write a character whose code is in R0\\n\\n.macro GetKey() SVC(3) // Read a key from the keyboard into R0\\n.macro HexPrt() SVC(4) // Hex Print the value in R0.\\n\\n.macro Yield() SVC(7) // Give up remaining quantum\\n\\n/// Semaphore macros.\\n/// Wait(S) waits on semaphore S; Signal(S) signals on S.\\n/// Both preserve all registers, by pushing and popping R3.\\n\\n.macro Wait(S) {\\n PUSH(r3) // Save old r3,\\n LDR(S,r3) // put semaphore address into r3\\n SVC(5) // Wait on semaphore whose adr is in R3\\n POP(r3) } // and restore former r3\\n\\n.macro Signal(S) {\\n PUSH(r3) // Save old r3,\\n LDR(S,r3) // put semaphore address into r3\\n SVC(6) // Signal on semaphore whose adr is in R3\\n POP(r3) } // and restore former r3\\n\\n/// Allocate a semaphore: used like\\n/// name: semaphore(size)\\n.macro semaphore(N) { // Allocate a semaphore, and build a ptr\\n LONG(.+4) // Pointer to semaphore\\n LONG(N) } // Semaphore itself, init value N.\\n\\n//////////////////////////////////////////////////////////////////////////////\\n/// User-mode code: Process 0\\n//////////////////////////////////////////////////////////////////////////////\\n\\nPrompt: semaphore(1) // To keep us from typing next prompt\\n // while P1 is typing previous output.\\n\\nP0Start:WrMsg()\\n .text \\\"Start typing, Bunky.\\\\n\\\\n\\\"\\n\\nP0Read: Wait(Prompt) // Wait until P1 has caught up...\\n WrMsg() // First a newline character, then\\n .text \\\"\\\\n\\\"\\n LD(Count3, r0) // print out the quantum count\\n HexPrt() // as part of the count, then\\n WrMsg() // the remainder.\\n .text \\\"> \\\"\\n\\n LD(P0LinP, r3) // ...then read a line into buffer...\\n\\nP0RdCh: GetKey() // read next character,\\n\\n WrCh() // echo back to user\\n CALL(UCase) // Convert it to upper case,\\n ST(r0,0,r3) // Store it in buffer.\\n ADDC(r3,4,r3) // Incr pointer to next char...\\n\\n CMPEQC(r0,0xA,r1) // End of line?\\n BT(r1,P0Send) // yup, transmit buffer to P1\\n\\n CMPEQC(r3,P0LinP-4,r1) // are we at end of buffer?\\n BF(r1,P0RdCh) // nope, read another char\\n CMOVE(0xA,r0) // end of buffer, force a newline\\n ST(r0,0,r3)\\n WrCh() // and echo it to the user\\n\\nP0Send: LD(P0LinP,r2) // Prepare to empty buffer.\\nP0PutC: LD(r2,0,r0) // read next char from buf,\\n CALL(Send) // send to P1\\n CMPEQC(r0,0xA,r1) // Is it end of line?\\n BT(r1,P0Read) // Yup, read another line.\\n\\n ADDC(r2,4,r2) // Else move to next char.\\n BR(P0PutC)\\n\\nP0Line: STORAGE(100) // Line buffer.\\nP0LinP: LONG(P0Line)\\n\\nP0Stack:\\n STORAGE(256)\\n\\n\\n////////////////////////////////////////////////////////////////////////\\n/// Some auxilliaries for our little application:\\n////////////////////////////////////////////////////////////////////////\\n\\n// Auxilliary routine: convert char in r0 to upper case:\\nUCase: PUSH(r1)\\n CMPLEC(r0,'z',r1) // Is it beyond 'z'?\\n BF(r1,UCase1) // yup, don't convert.\\n CMPLTC(r0,'a',r1) // Is it before 'a'?\\n BT(r1, UCase1) // yup, no change.\\n SUBC(r0,'a'-'A',r0) // Map to UPPER CASE...\\nUCase1: POP(r1)\\n RTN()\\n\\n// Auxilliary routine: Test if r0 is a vowel; boolean into r1.\\nVowelP: CMPEQC(r0,'A',r1) // Sorta brute force...\\n BT(r1,Vowel1)\\n CMPEQC(r0,'E',r1) BT(r1,Vowel1)\\n CMPEQC(r0,'I',r1) BT(r1,Vowel1)\\n CMPEQC(r0,'O',r1) BT(r1,Vowel1)\\n CMPEQC(r0,'U',r1) BT(r1,Vowel1)\\n CMPEQC(r0,'Y',r1) BT(r1,Vowel1)\\n CMOVE(0,r1) // Return FALSE.\\nVowel1: RTN()\\n\\n////////////////////////////////////////////////////////////////////////\\n/// Bounded-buffer FIFO routines for Beta USER MODE\\n/// CALL(Send) - sends datum in r0 thru pipe\\n/// CALL(Rcv) - reads datum from pipe into r0\\n////////////////////////////////////////////////////////////////////////\\n\\nFIFOSIZE = 100\\nFIFO: STORAGE(FIFOSIZE) // FIFO buffer.\\n\\nIN: LONG(0) // IN pointer: index into FIFO\\nOUT: LONG(0) // OUT pointer: index into FIFO\\n\\nChars: semaphore(0) // Flow-control semaphore 1\\nHoles: semaphore(FIFOSIZE) // Flow-control semaphore 2\\n\\n// Send: put r0 into fifo.\\nSend: PUSH(r1) // Save some regs...\\n PUSH(r2)\\n Wait(Holes) // Wait for space in buffer...\\n\\n LD(IN,r1) // IN pointer...\\n MULC(r1,4,r2) // Compute 4*IN, word offset\\n ST(r0,FIFO,r2) // FIFO[IN] = ch\\n ADDC(r1,1,r1) // Next time, next slot.\\n CMPEQC(r1,FIFOSIZE,r2) // End of buffer?\\n BF(r2,Send1) // nope.\\n CMOVE(0,r1) // yup, wrap around.\\nSend1: ST(r1,IN) // Tuck away input pointer\\n\\n Signal(Chars) // Now another Rcv() can happen\\n POP(R2)\\n POP(r1)\\n RTN()\\n\\n// Rcv: Get char from fifo into r0.\\n\\nRcv: PUSH(r1)\\n PUSH(r2)\\n Wait(Chars) // Wait until FIFO non-empty\\n\\n LD(OUT,r1) // OUT pointer...\\n MULC(r1,4,r2) // Compute 4*OUT, word offset\\n LD(r2,FIFO,r0) // result = FIFO[OUT]\\n ADDC(r1,1,r1) // Next time, next slot.\\n CMPEQC(r1,FIFOSIZE,r2) // End of buffer?\\n BF(r2,Rcv1) // nope.\\n CMOVE(0,r1) // yup, wrap around.\\nRcv1: ST(r1,OUT) // Tuck away input pointer\\n\\n Signal(Holes) // Now theres space for 1 more.\\n POP(R2)\\n POP(r1)\\n RTN()\\n\\n////////////////////////////////////////////////////////////////////////\\n/// USER MODE Process 1: Translate English to Piglatin\\n////////////////////////////////////////////////////////////////////////\\n\\nP1Start:\\n LD(P1BufP, r9) // Buffer pointer in r9.\\n\\nP1Word: MOVE(r9,r5) // Read initial consonants.\\nP1Cons: CALL(Rcv)\\n CALL(VowelP) // Is it a vowel?\\n BT(r1,P1Vowl) // yup, move on.\\n CMPLEC(r0,' ',r1) // Is it white space?\\n BT(r1,P1Spc)\\n\\n ST(r0,0,r5) // Else store it into buffer...\\n ADDC(r5,4,r5) // ... and bump pointer.\\n BR(P1Cons) // Back for more.\\n\\nP1Vowl: WrCh() // Output the vowel,\\n CALL(Rcv) // then check again.\\n CMPLEC(r0,' ',r1) // White space?\\n BF(r1,P1Vowl)\\n\\nP1Spc: MOVE(r0,r3) // Save input char, then\\n MOVE(r9,r4) // Output initial consonant.\\nP1Spc2: CMPEQ(r4,r5,r1) // Any left?\\n BT(r1,P1Spc1) // nope...\\n LD(r4,0,r0) // Fetch next char,\\n ADDC(r4,4,r4) // (next time, next char)\\n WrCh() // and write it out.\\n BR(P1Spc2)\\n\\nP1Spc1: WrMsg() // Add the \\\"AY\\\" suffix.\\n .text \\\"AY\\\"\\n MOVE(r3,r0) // Then the saved input char.\\n WrCh()\\n CMPEQC(r3,0xA,r0) // Was it end-of-line?\\n BF(r0,P1Word) // nope.\\n\\n Signal(Prompt) // it was; allow proc 0 to re-prompt.\\n BR(P1Word) // ... and start another word.\\n\\nP1Buf: STORAGE(100) // Line buffer.\\nP1BufP: LONG(P1Buf) // Address of line buffer.\\nP1Stack: STORAGE(256) // Stack for process 2.\\n\\n////////////////////////////////////////////////////////////////////////\\n/// USER MODE Process 2: Simply counts quanta.\\n////////////////////////////////////////////////////////////////////////\\n\\nP2Start:\\n LD(Count3, r0) // Another quantum, incr count3.\\n ADDC(r0,1,r0)\\n ST(r0,Count3)\\n Yield() // Invoke scheduler\\n BR(P2Start) // return here after others run.\\n\\nP2Stack: STORAGE(256)\\n\\nCount3: LONG(0)\\n\"}}", "/lab1.html": "{\"tests\":{\"/lab1/nand2\":\"passed 5dc949de58db8277e8e23f8a4f898dba d41d8cd98f00b204e9800998ecf8427e 125000000\",\"/lab1/nor2\":\"passed 1d5cd3b348c9911c71d8fe10ac276bf4 d41d8cd98f00b204e9800998ecf8427e 125000000\",\"/lab1/xor2\":\"passed de48cd543bfd55f694274e23c3764cd0 d41d8cd98f00b204e9800998ecf8427e 71428571.42857142\",\"/lab1/fa\":\"passed 9ef0701fdb227ed1dd77a02edd35605f d41d8cd98f00b204e9800998ecf8427e 19230769.230769232\",\"/lab1/adder3\":\"passed bc1600f975bb2b1e631aeb71d90afd79 d41d8cd98f00b204e9800998ecf8427e 525486.0746190225\"},\"state\":{\"/lab1/nand2\":{\"schematic\":[[\"port\",[-24,32,0],{\"signal\":\"A\"}],[\"port\",[-24,80,0],{\"signal\":\"B\"}],[\"port\",[40,32,4],{\"direction\":\"out\",\"signal\":\"Z\"}],[\"/analog/nfet\",[0,32,0]],[\"/analog/nfet\",[0,64,0]],[\"/analog/pfet\",[0,0,0]],[\"/analog/pfet\",[40,0,0]],[\"wire\",[40,0,0,-40,0]],[\"vdd\",[0,0,0]],[\"ground\",[0,96,0]],[\"wire\",[-24,16,0,0,16]],[\"wire\",[-24,48,0,0,-16]],[\"wire\",[16,16,0,0,64]],[\"wire\",[16,80,0,-40,0]],[\"wire\",[40,32,0,-40,0]]]},\"/lab1/nor2\":{\"schematic\":[[\"port\",[-32,-32,0],{\"signal\":\"A\"}],[\"port\",[-32,-80,0],{\"signal\":\"B\"}],[\"port\",[40,-32,4],{\"direction\":\"out\",\"signal\":\"Z\"}],[\"/analog/nfet\",[40,-32,0]],[\"/analog/nfet\",[-8,-32,0]],[\"/analog/pfet\",[-8,-64,0]],[\"/analog/pfet\",[-8,-96,0]],[\"vdd\",[-8,-96,0]],[\"wire\",[40,0,0,-48,0]],[\"ground\",[-8,0,0]],[\"wire\",[-32,-48,0,0,16]],[\"wire\",[-32,-16,0,0,-16]],[\"wire\",[40,-32,0,-48,0]],[\"wire\",[16,-16,0,0,-64]],[\"wire\",[16,-80,0,-48,0]]]},\"/lab1/xor2\":{\"schematic\":[[\"port\",[-176,-24,0],{\"signal\":\"A\"}],[\"port\",[-176,-8,0],{\"signal\":\"B\"}],[\"port\",[-40,32,4],{\"direction\":\"out\",\"signal\":\"Z\"}],[\"/analog/nfet\",[-40,32,0],{\"W\":\"4\"}],[\"/analog/nfet\",[-104,32,0],{\"W\":\"4\"}],[\"/analog/nfet\",[-104,64,0],{\"W\":\"4\"}],[\"wire\",[-40,64,0,0,32]],[\"wire\",[-40,96,0,-64,0]],[\"/analog/pfet\",[-104,0,0],{\"W\":\"16\"}],[\"/analog/pfet\",[-40,0,0],{\"W\":\"16\"}],[\"wire\",[-40,32,0,-64,0]],[\"wire\",[-40,0,0,-64,0]],[\"vdd\",[-104,-32,0]],[\"ground\",[-104,96,0]],[\"/lab1/nor2\",[-176,-24,0]],[\"wire\",[-128,-16,0,48,0]],[\"wire\",[-80,-16,0,0,64]],[\"wire\",[-80,48,0,16,0]],[\"wire\",[-128,16,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-128,48,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-128,80,0,-8,0],{\"signal\":\"B\"}],[\"wire\",[-64,16,0,-8,0],{\"signal\":\"B\"}],[\"/analog/pfet\",[-104,-32,0],{\"W\":\"16\"}]]},\"/lab1/fa\":{\"schematic\":[[\"port\",[-96,-88,0],{\"signal\":\"A\"}],[\"port\",[-96,-72,0],{\"signal\":\"B\"}],[\"port\",[-48,-56,0],{\"signal\":\"Cin\"}],[\"port\",[0,-16,4],{\"signal\":\"Cout\",\"direction\":\"out\"}],[\"port\",[0,-64,4],{\"signal\":\"S\",\"direction\":\"out\"}],[\"/lab1/xor2\",[-48,-72,0]],[\"/lab1/xor2\",[-96,-88,0]],[\"wire\",[-48,-80,0,0,8],{\"signal\":\"P\"}],[\"/lab1/nand2\",[-48,-24,0]],[\"/lab1/nand2\",[-96,-40,0]],[\"/lab1/nand2\",[-96,-8,0]],[\"wire\",[-48,-8,0,0,8]],[\"wire\",[-48,-24,0,0,-8]],[\"wire\",[-96,-40,0,-8,0],{\"signal\":\"P\"}],[\"wire\",[-96,-24,0,-8,0],{\"signal\":\"CIN\"}],[\"wire\",[-96,-8,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-96,8,0,-8,0],{\"signal\":\"B\"}]]}},\"last_saved\":1459457610282}", "/lab5.html": "{\"tests\":{\"/lab5/regfile\":\"passed 9fdebf954c25d82f0ba5125982b3268e d41d8cd98f00b204e9800998ecf8427e 1851.6598278697043\",\"/lab5/pc\":\"passed c831dff860e820a0179567f0964f0f72 d41d8cd98f00b204e9800998ecf8427e 3864.764172090219\",\"/lab5/ctl\":\"passed 3e5897e2dab8128bbf190bf5301637b7 d41d8cd98f00b204e9800998ecf8427e 887.784090909084\",\"/lab5/test\":\"Error detected: test did not yield a result.\"},\"state\":{\"/lab3/arith\":{\"schematic\":[[\"port\",[56,-40,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-16,-32,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-16,-16,0],{\"signal\":\"AFN\"}],[\"port\",[104,-32,4],{\"signal\":\"S[31:0]\",\"direction\":\"out\"}],[\"port\",[104,48,4],{\"signal\":\"V\",\"direction\":\"out\"}],[\"port\",[104,-88,4],{\"signal\":\"N\",\"direction\":\"out\"}],[\"port\",[104,-128,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/lab3/FA\",[80,-32,0]],[\"wire\",[80,-64,0,0,-8],{\"signal\":\"C[31:0]\"}],[\"wire\",[80,0,0,0,8],{\"signal\":\"C[30:0],AFN\"}],[\"/gates/xor2\",[-16,-32,0]],[\"wire\",[32,-24,0,24,0],{\"signal\":\"XB[31:0]\"}],[\"jumper\",[96,-88,0]],[\"wire\",[96,-88,0,-8,0],{\"signal\":\"S[31]\"}],[\"/gates/nor4\",[-160,-152,0]],[\"/gates/nand4\",[-48,-152,0]],[\"/gates/nor2\",[56,-136,0]],[\"wire\",[56,-136,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[56,-120,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[0,-128,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-48,-152,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-48,-136,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-48,-120,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-48,-104,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-112,-128,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-160,-152,0,-8,0],{\"signal\":\"S[31:24]\"}],[\"wire\",[-160,-136,0,-8,0],{\"signal\":\"S[23:16]\"}],[\"wire\",[-160,-120,0,-8,0],{\"signal\":\"S[15:8]\"}],[\"wire\",[-160,-104,0,-8,0],{\"signal\":\"S[7:0]\"}],[\"/gates/nand2\",[56,40,0]],[\"/gates/nand3\",[8,8,0]],[\"/gates/or3\",[8,56,0]],[\"wire\",[56,40,0,0,-16]],[\"wire\",[56,56,0,0,16]],[\"wire\",[8,8,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[8,24,0,-8,0],{\"signal\":\"XB[31]\"}],[\"wire\",[8,72,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[8,88,0,-8,0],{\"signal\":\"XB[31]\"}],[\"/gates/inverter\",[-24,40,0]],[\"wire\",[8,56,0,0,-16]],[\"wire\",[-24,40,0,-8,0],{\"signal\":\"S[31]\"}]]},\"/lab3/bool\":{\"schematic\":[[\"port\",[0,-72,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"port\",[-88,-56,0],{\"signal\":\"BFN[3:0]\"}],[\"port\",[-88,-72,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-88,-88,0],{\"signal\":\"A[31:0]\"}],[\"/gates/mux4\",[-16,-96,0]],[\"wire\",[-8,-32,0,-16,0],{\"signal\":\"B[31:0],A[31:0]\"}],[\"wire\",[-16,-48,0,-8,0],{\"signal\":\"BFN[0]\"}],[\"wire\",[-16,-64,0,-8,0],{\"signal\":\"BFN[1]\"}],[\"wire\",[-16,-80,0,-8,0],{\"signal\":\"BFN[2]\"}],[\"wire\",[-16,-96,0,-8,0],{\"signal\":\"BFN[3]\"}]]},\"/lab3/FA\":{\"schematic\":[[\"port\",[-104,-72,0],{\"signal\":\"A\"}],[\"port\",[-104,-56,0],{\"signal\":\"B\"}],[\"port\",[-104,-40,0],{\"signal\":\"Cin\"}],[\"port\",[-8,8,4],{\"signal\":\"Cout\",\"direction\":\"out\"}],[\"port\",[-8,-48,4],{\"signal\":\"S\",\"direction\":\"out\"}],[\"/gates/xor2\",[-56,-56,0]],[\"/gates/xor2\",[-104,-72,0]],[\"/gates/nand2\",[-104,-16,0]],[\"/gates/nand2\",[-104,16,0]],[\"/gates/nand2\",[-56,0,0]],[\"wire\",[-56,-8,0,0,8]],[\"wire\",[-56,16,0,0,8]],[\"wire\",[-56,-64,0,0,8],{\"signal\":\"P\"}],[\"wire\",[-56,-40,0,-48,0]],[\"wire\",[-104,-16,0,0,-24]],[\"wire\",[-104,0,0,-8,0],{\"signal\":\"P\"}],[\"wire\",[-104,16,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-104,32,0,-8,0],{\"signal\":\"B\"}]]},\"/lab3/cmp\":{\"schematic\":[[\"port\",[-120,32,0],{\"signal\":\"V\"}],[\"port\",[-120,16,0],{\"signal\":\"N\"}],[\"port\",[24,-24,4],{\"signal\":\"Y[31:1]\",\"direction\":\"out\"}],[\"port\",[24,0,4],{\"signal\":\"Y[0]\",\"direction\":\"out\"}],[\"jumper\",[16,-24,0]],[\"wire\",[16,-24,0,-8,0],{\"signal\":\"0'31\"}],[\"port\",[-72,-24,0],{\"signal\":\"Z\"}],[\"port\",[-136,-8,0],{\"signal\":\"CFN[1:0]\"}],[\"/gates/nand2\",[-24,-8,0]],[\"/gates/nand2\",[-72,-24,0]],[\"/gates/nand2\",[-72,8,0]],[\"wire\",[-24,8,0,0,8]],[\"wire\",[-24,-8,0,0,-8]],[\"/gates/xor2\",[-120,16,0]],[\"wire\",[-72,-8,0,-8,0],{\"signal\":\"CFN[0]\"}],[\"wire\",[-72,8,0,-8,0],{\"signal\":\"CFN[1]\"}]]},\"/lab3/shift\":{\"schematic\":[[\"port\",[-288,-144,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-288,-128,0],{\"signal\":\"B[4:0]\"}],[\"port\",[-288,-112,0],{\"signal\":\"SFN[1:0]\"}],[\"port\",[-80,0,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"/gates/mux2\",[-96,-8,0]],[\"wire\",[-96,-8,0,-8,0],{\"signal\":\"X[0:31]\"}],[\"wire\",[-96,8,0,-8,0],{\"signal\":\"X[31:0]\"}],[\"wire\",[-88,24,0,0,8],{\"signal\":\"SFN[0]\"}],[\"/gates/mux2\",[-192,-8,0]],[\"wire\",[-176,0,0,8,0],{\"signal\":\"X[31:0]\"}],[\"wire\",[-184,24,0,0,8],{\"signal\":\"B[0]\"}],[\"wire\",[-192,8,0,-8,0],{\"signal\":\"W[31:0]\"}],[\"wire\",[-192,-8,0,-8,0],{\"signal\":\"W[30:0],SIN\"}],[\"/gates/mux2\",[-304,-8,0]],[\"wire\",[-288,0,0,8,0],{\"signal\":\"W[31:0]\"}],[\"wire\",[-296,24,0,0,8],{\"signal\":\"B[1]\"}],[\"wire\",[-304,8,0,-8,0],{\"signal\":\"V[31:0]\"}],[\"wire\",[-304,-8,0,-8,0],{\"signal\":\"V[29:0],SIN#2\"}],[\"/gates/mux2\",[-80,-80,0]],[\"wire\",[-64,-72,0,8,0],{\"signal\":\"V[31:0]\"}],[\"wire\",[-72,-48,0,0,8],{\"signal\":\"B[2]\"}],[\"wire\",[-80,-64,0,-8,0],{\"signal\":\"U[31:0]\"}],[\"wire\",[-80,-80,0,-8,0],{\"signal\":\"U[27:0],SIN#4\"}],[\"/gates/mux2\",[-192,-80,0]],[\"wire\",[-176,-72,0,8,0],{\"signal\":\"U[31:0]\"}],[\"wire\",[-184,-48,0,0,8],{\"signal\":\"B[3]\"}],[\"wire\",[-192,-64,0,-8,0],{\"signal\":\"T[31:0]\"}],[\"wire\",[-192,-80,0,-8,0],{\"signal\":\"T[23:0],SIN#8\"}],[\"/gates/mux2\",[-304,-80,0]],[\"wire\",[-288,-72,0,8,0],{\"signal\":\"T[31:0]\"}],[\"wire\",[-296,-48,0,0,8],{\"signal\":\"B[4]\"}],[\"wire\",[-304,-64,0,-8,0],{\"signal\":\"S[31:0]\"}],[\"wire\",[-304,-80,0,-8,0],{\"signal\":\"S[15:0],SIN#16\"}],[\"/gates/mux2\",[-80,-144,0]],[\"wire\",[-80,-144,0,-8,0],{\"signal\":\"A[0:31]\"}],[\"wire\",[-80,-128,0,-8,0],{\"signal\":\"A[31:0]\"}],[\"wire\",[-72,-112,0,0,8],{\"signal\":\"SFN[0]\"}],[\"wire\",[-64,-136,0,8,0],{\"signal\":\"S[31:0]\"}],[\"/gates/and2\",[-208,-136,0]],[\"wire\",[-208,-120,0,-8,0],{\"signal\":\"SFN[1]\"}],[\"wire\",[-208,-136,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[-160,-128,0,8,0],{\"signal\":\"SIN\"}]]},\"/lab5/beta\":{\"schematic\":[[\"/lab5/ctl\",[-328,-200,0],{\"name\":\"ctl\"}],[\"wire\",[-384,-224,0,-8,0],{\"signal\":\"id[31:26]\"}],[\"wire\",[-384,-208,0,-8,0],{\"signal\":\"reset\"}],[\"/gates/and2\",[-448,-200,0]],[\"wire\",[-400,-192,0,16,0]],[\"wire\",[-448,-200,0,-8,0],{\"signal\":\"irq\"}],[\"/gates/inverter\",[-480,-184,0]],[\"wire\",[-480,-184,0,-8,0],{\"signal\":\"ia[31]\"}],[\"wire\",[-384,-176,0,-8,0],{\"signal\":\"Z\"}],[\"wire\",[-304,-224,0,8,0],{\"signal\":\"alufn[5:0]\"}],[\"wire\",[-304,-208,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-304,-192,0,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-304,-176,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-304,-160,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-304,-144,0,8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-304,-128,0,8,0],{\"signal\":\"ra2sel\"}],[\"wire\",[-304,-112,0,8,0],{\"signal\":\"wasel\"}],[\"wire\",[-304,-96,0,8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-304,-80,0,8,0],{\"signal\":\"werf\"}],[\"/lab5/pc\",[-392,-352,0],{\"name\":\"pc\"}],[\"wire\",[-400,-280,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-400,-296,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-400,-312,0,-8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-400,-328,0,-8,0],{\"signal\":\"jt[31:2]\"}],[\"wire\",[-400,-344,0,-8,0],{\"signal\":\"id[15:0]\"}],[\"wire\",[-304,-328,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-304,-312,0,8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"wire\",[-304,-296,0,8,0],{\"signal\":\"pc_offset[31:0]\"}],[\"/lab5/regfile\",[-136,-288,0],{\"name\":\"regfile\"}],[\"wire\",[-160,-368,0,0,-8],{\"signal\":\"id[20:16]\"}],[\"wire\",[-96,-368,0,0,-8],{\"signal\":\"id[15:11]\"}],[\"wire\",[-200,-344,0,-8,0],{\"signal\":\"ra2sel\"}],[\"wire\",[-200,-328,0,-8,0],{\"signal\":\"id[25:21]\"}],[\"wire\",[-200,-312,0,-8,0],{\"signal\":\"wasel\"}],[\"wire\",[-200,-296,0,-8,0],{\"signal\":\"werf\"}],[\"wire\",[-200,-280,0,-8,0],{\"signal\":\"clk\"}],[\"/lab3/alu\",[-128,-152,1]],[\"wire\",[-168,-160,0,-8,0],{\"signal\":\"alufn[5:0]\"}],[\"/gates/mux4\",[-96,-88,1]],[\"wire\",[-96,-88,0,0,-8]],[\"wire\",[-96,-96,0,8,0],{\"signal\":\"0'32\"}],[\"wire\",[-112,-88,0,0,-24]],[\"wire\",[-112,-112,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-88,-128,0,-40,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-128,-88,0,0,-40]],[\"wire\",[-128,-136,0,0,8]],[\"wire\",[-120,-72,0,0,8],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-56,-312,0,8,0],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-160,-80,0,-8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-144,-88,0,0,-8]],[\"wire\",[-144,-96,0,-8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"/gates/mux2\",[-80,-240,1]],[\"/gates/mux2\",[-176,-224,7]],[\"wire\",[-144,-216,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-112,-232,4,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-144,-184,0,-24,0]],[\"wire\",[-168,-184,0,0,-24],{\"width\":\"32\"}],[\"wire\",[-160,-224,0,0,-32],{\"signal\":\"jt[31:0]\"}],[\"wire\",[-72,-248,3,0,-8],{\"signal\":\"id[15]#16,id[15:0]\"}],[\"wire\",[-176,-224,0,0,-8]],[\"wire\",[-176,-232,0,-8,0],{\"signal\":\"0'1,pc_offset[30:0]\"}],[\"wire\",[-80,-240,0,0,-8]],[\"wire\",[-112,-184,0,24,0]],[\"wire\",[-88,-184,0,0,-40],{\"width\":\"32\"}],[\"port\",[-80,-432,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/gates/nor4\",[-344,-456,0]],[\"/gates/nand4\",[-232,-456,0]],[\"/gates/nor2\",[-128,-440,0]],[\"wire\",[-128,-440,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[-128,-424,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[-184,-432,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-232,-456,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-232,-440,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-232,-424,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-232,-408,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-296,-432,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-344,-456,0,-8,0],{\"signal\":\"JT[31:24]\"}],[\"wire\",[-344,-440,0,-8,0],{\"signal\":\"JT[23:16]\"}],[\"wire\",[-344,-424,0,-8,0],{\"signal\":\"JT[15:8]\"}],[\"wire\",[-344,-408,0,-8,0],{\"signal\":\"JT[7:0]\"}],[\"wire\",[-96,-256,0,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[-96,-240,0,0,-16]]]},\"/lab5/ctl\":{\"schematic\":[[\"port\",[96,56,4],{\"signal\":\"ra2sel\",\"direction\":\"out\"}],[\"port\",[96,-24,4],{\"signal\":\"asel\",\"direction\":\"out\"}],[\"port\",[96,-8,4],{\"signal\":\"bsel\",\"direction\":\"out\"}],[\"port\",[96,-40,4],{\"signal\":\"alufn[5:0]\",\"direction\":\"out\"}],[\"port\",[96,88,4],{\"signal\":\"wdsel[1:0]\",\"direction\":\"out\"}],[\"port\",[96,72,4],{\"signal\":\"wasel\",\"direction\":\"out\"}],[\"port\",[96,104,4],{\"signal\":\"werf\",\"direction\":\"out\"}],[\"port\",[96,40,4],{\"signal\":\"pcsel[2:0]\",\"direction\":\"out\"}],[\"port\",[96,8,4],{\"signal\":\"moe\",\"direction\":\"out\"}],[\"port\",[96,24,4],{\"signal\":\"mwr\",\"direction\":\"out\"}],[\"port\",[-168,-64,0],{\"signal\":\"op[5:0]\"}],[\"port\",[64,48,0],{\"signal\":\"reset\"}],[\"port\",[-120,128,0],{\"signal\":\"irq\"}],[\"port\",[-152,0,0],{\"signal\":\"z\"}],[\"memory\",[-168,-64,0],{\"naddr\":\"6\",\"ndata\":\"18\",\"name\":\"ctlrom\",\"contents\":\"// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b??????_??_?0_011_?_1001 // 0b000000 \\n0b??????_??_?0_011_?_1001 // 0b000001 \\n0b??????_??_?0_011_?_1001 // 0b000010 \\n0b??????_??_?0_011_?_1001 // 0b000011 \\n0b??????_??_?0_011_?_1001 // 0b000100 \\n0b??????_??_?0_011_?_1001 // 0b000101 \\n0b??????_??_?0_011_?_1001 // 0b000110 \\n0b??????_??_?0_011_?_1001 // 0b000111 \\n \\n0b??????_??_?0_011_?_1001 // 0b001000 \\n0b??????_??_?0_011_?_1001 // 0b001001 \\n0b??????_??_?0_011_?_1001 // 0b001010 \\n0b??????_??_?0_011_?_1001 // 0b001011 \\n0b??????_??_?0_011_?_1001 // 0b001100 \\n0b??????_??_?0_011_?_1001 // 0b001101 \\n0b??????_??_?0_011_?_1001 // 0b001110 \\n0b??????_??_?0_011_?_1001 // 0b001111\\n\\n// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b??????_??_?0_011_?_1001 // 0b010000 \\n0b??????_??_?0_011_?_1001 // 0b010001 \\n0b??????_??_?0_011_?_1001 // 0b010010 \\n0b??????_??_?0_011_?_1001 // 0b010011 \\n0b??????_??_?0_011_?_1001 // 0b010100 \\n0b??????_??_?0_011_?_1001 // 0b010101 \\n0b??????_??_?0_011_?_1001 // 0b010110 \\n0b??????_??_?0_011_?_1001 // 0b010111 \\n \\n0b010000_01_10_000_?_0101 // 0b011000 LD \\n0b010000_01_?1_000_1_???0 // 0b011001 ST \\n0b??????_??_?0_011_?_1001 // 0b011010 \\n0b??????_??_?0_010_?_0001 // 0b011011 JMP \\n0b??????_??_?0_110_?_0001 // 0b011100 BEQ \\n0b??????_??_?0_111_?_0001 // 0b011101 BNE \\n0b??????_??_?0_011_?_1001 // 0b011110 \\n0b101010_1?_10_000_?_0101 // 0b011111 LDR \\n \\n// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b010000_00_?0_000_0_0011 // 0b100000 ADD \\n0b010001_00_?0_000_0_0011 // 0b100001 SUB \\n0b??????_??_?0_011_?_1001 // 0b100010 MUL \\n0b??????_??_?0_011_?_1001 // 0b100011 DIV \\n0b000011_00_?0_000_0_0011 // 0b100100 CMPEQ \\n0b000101_00_?0_000_0_0011 // 0b100101 CMPLT \\n0b000111_00_?0_000_0_0011 // 0b100110 CMPLE \\n0b??????_??_?0_011_?_1001 // 0b100111 \\n \\n0b101000_00_?0_000_0_0011 // 0b101000 AND \\n0b101110_00_?0_000_0_0011 // 0b101001 OR \\n0b100110_00_?0_000_0_0011 // 0b101010 XOR \\n0b101001_00_?0_000_0_0011 // 0b101011 XNOR \\n0b110000_00_?0_000_0_0011 // 0b101100 SHL \\n0b110001_00_?0_000_0_0011 // 0b101101 SHR \\n0b110011_00_?0_000_0_0011 // 0b101110 SRA \\n0b??????_??_?0_011_?_1001 // 0b101111\\n\\n// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b010000_01_?0_000_?_0011 // 0b110000 ADDC \\n0b010001_01_?0_000_?_0011 // 0b110001 SUBC \\n0b??????_??_?0_011_?_1001 // 0b110010 MULC \\n0b??????_??_?0_011_?_1001 // 0b110011 DIVC \\n0b000011_01_?0_000_?_0011 // 0b110100 CMPEQC \\n0b000101_01_?0_000_?_0011 // 0b110101 CMPLTC \\n0b000111_01_?0_000_?_0011 // 0b110110 CMPLEC \\n0b??????_??_?0_011_?_1001 // 0b110111 \\n \\n0b101000_01_?0_000_?_0011 // 0b111000 ANDC \\n0b101110_01_?0_000_?_0011 // 0b111001 ORC \\n0b100110_01_?0_000_?_0011 // 0b111010 XORC \\n0b101001_01_?0_000_?_0011 // 0b111011 XNORC \\n0b110000_01_?0_000_?_0011 // 0b111100 SHLC \\n0b110001_01_?0_000_?_0011 // 0b111101 SHRC \\n0b110011_01_?0_000_?_0011 // 0b111110 SRAC \\n0b??????_??_?0_011_?_1001 // 0b111111\"}],[\"wire\",[-168,-56,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[-168,-48,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-168,-40,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-96,-64,0,8,0],{\"signal\":\"alufn[5:0],asel,bsel,moe,xmwr,xpcsel[2:0],ra2sel,xwasel,xwdsel[1:0],xwerf\"}],[\"/gates/xor2\",[-152,-16,0]],[\"wire\",[-152,-16,0,-8,0],{\"signal\":\"xpcsel[0]\"}],[\"wire\",[-104,-8,0,8,0],{\"signal\":\"branch\"}],[\"/gates/mux2\",[-120,24,0]],[\"wire\",[-104,32,0,8,0],{\"signal\":\"ypcsel[2:0]\"}],[\"wire\",[-120,24,0,-8,0],{\"signal\":\"0'2,branch\"}],[\"wire\",[-120,40,0,-8,0],{\"signal\":\"xpcsel[2:0]\"}],[\"/gates/and2\",[-160,56,0]],[\"wire\",[-112,56,0,0,8]],[\"wire\",[-160,56,0,-8,0],{\"signal\":\"xpcsel[1]\"}],[\"wire\",[-160,72,0,-8,0],{\"signal\":\"xpcsel[2]\"}],[\"/gates/mux2\",[64,16,0]],[\"wire\",[80,24,0,16,0]],[\"wire\",[64,48,0,8,0]],[\"wire\",[64,32,0,-8,0],{\"signal\":\"ymwr\"}],[\"wire\",[64,16,0,-8,0],{\"signal\":\"0'1\"}],[\"/gates/mux2\",[-120,96,0]],[\"wire\",[-104,104,0,8,0],{\"signal\":\"pcsel[2:0],ymwr,wasel,wdsel[1:0],werf\"}],[\"wire\",[-120,128,0,8,0]],[\"wire\",[-120,112,0,-8,0],{\"signal\":\"ypcsel[2:0],xmwr,xwasel,xwdsel[1:0],xwerf\"}],[\"wire\",[-120,96,0,-8,0],{\"signal\":\"4'3,0'1,1'1,0'2,1'1\"}]]},\"/lab5/pc\":{\"schematic\":[[\"port\",[16,-40,4],{\"signal\":\"PC[31:0]\",\"direction\":\"out\"}],[\"port\",[8,64,4],{\"signal\":\"PC_OFFSET[31:0]\",\"direction\":\"out\"}],[\"/gates/dreg\",[-24,-40,0]],[\"/gates/mux2\",[-72,-48,0]],[\"/gates/mux2\",[-120,-40,0]],[\"wire\",[-72,-48,0,-8,0]],[\"wire\",[-80,-48,0,0,-32],{\"signal\":\"0x80000000'32\"}],[\"wire\",[-104,-32,0,32,0],{\"width\":\"32\"}],[\"wire\",[-112,-8,0,0,8],{\"signal\":\"PCSEL[2]\"}],[\"wire\",[-120,-40,0,-8,0]],[\"wire\",[-128,-40,0,0,-32],{\"signal\":\"0x80000008'32\"}],[\"/gates/mux4\",[-168,-48,0]],[\"wire\",[-152,-24,0,32,0],{\"width\":\"32\"}],[\"wire\",[-160,16,0,0,8],{\"signal\":\"PCSEL[1:0]\"}],[\"wire\",[-168,0,0,-8,0],{\"signal\":\"PC_INC[31:0]\"}],[\"wire\",[-168,-16,0,-8,0],{\"signal\":\"PC_OFFSET[31:0]\"}],[\"wire\",[-168,-32,0,-8,0],{\"signal\":\"JTMSB,JT[30:2],GND#2\"}],[\"wire\",[-168,-48,0,-8,0],{\"signal\":\"0x80000004'32\"}],[\"/lab3/FA\",[8,128,0]],[\"wire\",[32,128,0,8,0],{\"signal\":\"OFFSET[30:2]\"}],[\"wire\",[-16,136,0,-8,0],{\"signal\":\"INC[30:2]\"}],[\"wire\",[-16,120,0,-8,0],{\"signal\":\"ID[15]#13,ID[15:0]\"}],[\"wire\",[8,160,0,0,8],{\"signal\":\"Coff[29:2],0'1\"}],[\"wire\",[8,96,0,0,-8],{\"signal\":\"Coff[30:2]\"}],[\"jumper\",[0,64,0]],[\"wire\",[0,64,0,-8,0],{\"signal\":\"PC[31],OFFSET[30:2],GND#2\"}],[\"wire\",[-64,-16,0,0,8],{\"signal\":\"RESET\"}],[\"wire\",[-56,-40,0,32,0],{\"width\":\"32\"}],[\"wire\",[-24,-24,0,-8,0],{\"signal\":\"CLK\"}],[\"/gates/and2\",[-232,-96,0]],[\"wire\",[-232,-96,0,-8,0],{\"signal\":\"JT[31]\"}],[\"wire\",[-232,-80,0,-8,0],{\"signal\":\"PC[31]\"}],[\"wire\",[-184,-88,0,8,0],{\"signal\":\"JTMSB\"}],[\"/lab3/HA\",[-184,136,0]],[\"wire\",[-192,160,0,0,8],{\"signal\":\"Cinc[29:2],1'1\"}],[\"wire\",[-192,96,0,0,-8],{\"signal\":\"Cinc[30:2]\"}],[\"wire\",[-160,128,0,8,0],{\"signal\":\"INC[30:2]\"}],[\"wire\",[-224,128,0,-8,0],{\"signal\":\"PC[30:2]\"}],[\"port\",[-192,64,4],{\"signal\":\"PC_INC[31:0]\",\"direction\":\"out\"}],[\"jumper\",[-200,64,0]],[\"wire\",[-200,64,0,-8,0],{\"signal\":\"PC[31],INC[30:2],GND#2\"}]]},\"/lab5/regfile\":{\"schematic\":[[\"port\",[32,-8,4],{\"signal\":\"radata[31:0]\",\"direction\":\"out\"}],[\"port\",[32,32,4],{\"signal\":\"rbdata[31:0]\",\"direction\":\"out\"}],[\"port\",[-176,72,0],{\"signal\":\"rc[4:0]\"}],[\"port\",[-112,80,0],{\"signal\":\"werf\"}],[\"port\",[-112,88,0],{\"signal\":\"clk\"}],[\"port\",[-176,24,0],{\"signal\":\"rb[4:0]\"}],[\"port\",[-112,-16,0],{\"signal\":\"ra[4:0]\"}],[\"port\",[-40,64,4],{\"signal\":\"wdata[31:0]\"}],[\"port\",[-176,88,0],{\"signal\":\"wasel\"}],[\"port\",[-176,40,0],{\"signal\":\"ra2sel\"}],[\"memory\",[-112,-16,0],{\"nports\":\"3\",\"naddr\":\"5\",\"ndata\":\"32\",\"name\":\"regfile\"}],[\"wire\",[-112,72,0,-8,0],{\"signal\":\"0'1\"}],[\"/gates/mux2\",[-176,56,0]],[\"wire\",[-168,88,0,-8,0]],[\"wire\",[-176,56,0,-8,0],{\"signal\":\"30'5\"}],[\"wire\",[-160,64,0,48,0],{\"width\":\"5\"}],[\"wire\",[-112,48,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,40,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,32,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[-112,8,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,0,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,-8,0,-8,0],{\"signal\":\"1'1\"}],[\"/gates/mux2\",[-176,8,0]],[\"wire\",[-168,40,0,-8,0]],[\"wire\",[-160,16,0,16,0]],[\"wire\",[-144,16,0,0,8]],[\"wire\",[-144,24,0,32,0],{\"signal\":\"ra2[4:0]\"}],[\"wire\",[-176,8,0,-8,0],{\"signal\":\"rc[4:0]\"}],[\"/gates/and2\",[-16,24,0]],[\"wire\",[-16,24,0,-24,0],{\"width\":\"32\"}],[\"wire\",[-16,40,0,-8,0],{\"signal\":\"rben\"}],[\"/gates/and2\",[-16,-16,0]],[\"wire\",[-16,0,0,-8,0],{\"signal\":\"raen\"}],[\"wire\",[-40,-16,0,24,0],{\"width\":\"32\"}],[\"/gates/and3\",[-104,112,0]],[\"wire\",[-56,144,0,-8,0],{\"signal\":\"ra[3]\"}],[\"wire\",[-56,160,0,-8,0],{\"signal\":\"ra[4]\"}],[\"wire\",[-104,112,0,-8,0],{\"signal\":\"ra[0]\"}],[\"wire\",[-104,128,0,-8,0],{\"signal\":\"ra[1]\"}],[\"wire\",[-104,144,0,-8,0],{\"signal\":\"ra[2]\"}],[\"/gates/nand3\",[-56,128,0]],[\"wire\",[-8,144,0,8,0],{\"signal\":\"raen\"}],[\"/gates/and3\",[-104,176,0]],[\"wire\",[-56,208,0,-8,0],{\"signal\":\"ra2[3]\"}],[\"wire\",[-56,224,0,-8,0],{\"signal\":\"ra2[4]\"}],[\"wire\",[-104,176,0,-8,0],{\"signal\":\"ra2[0]\"}],[\"wire\",[-104,192,0,-8,0],{\"signal\":\"ra2[1]\"}],[\"wire\",[-104,208,0,-8,0],{\"signal\":\"ra2[2]\"}],[\"/gates/nand3\",[-56,192,0]],[\"wire\",[-8,208,0,8,0],{\"signal\":\"rben\"}]]},\"/lab3/HA\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"port\",[-40,-40,0],{\"signal\":\"A\"}],[\"port\",[-40,-24,0],{\"signal\":\"Cin\"}],[\"port\",[8,24,4],{\"signal\":\"Cout\",\"direction\":\"out\"}],[\"port\",[8,-32,4],{\"signal\":\"S\",\"direction\":\"out\"}],[\"/gates/xor2\",[-40,-40,0]],[\"/gates/and2\",[-40,16,0]],[\"wire\",[-40,16,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-40,32,0,-8,0],{\"signal\":\"CIN\"}]],\"icon\":[[\"terminal\",[-40,-8,0],{\"name\":\"A\"}],[\"terminal\",[24,-8,2],{\"name\":\"S\"}],[\"terminal\",[-8,-40,1],{\"name\":\"COUT\"}],[\"terminal\",[-8,24,3],{\"name\":\"CIN\"}],[\"text\",[-30,-8,0],{\"text\":\"A\"}],[\"text\",[14,-8,0],{\"text\":\"S\",\"align\":\"center-right\"}],[\"text\",[-8,-30,0],{\"text\":\"COUT\",\"align\":\"top-center\"}],[\"text\",[-8,14,0],{\"text\":\"CIN\",\"align\":\"bottom-center\"}],[\"text\",[-8,-8,0],{\"text\":\"HA\",\"font\":\"10pt bold sans-serif\",\"align\":\"center\"}],[\"line\",[-32,-32,0,48,0]],[\"line\",[16,-32,0,0,48]],[\"line\",[16,16,0,-48,0]],[\"line\",[-32,16,0,0,-48]]],\"test\":[[\"test\",\"\"]]},\"/user/untitled\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"test\":[[\"test\",\"\"]]}},\"last_saved\":1495809588213}", "/lab3.html": "{\"tests\":{\"/lab3/FA\":\"passed 86a2cd0d0f10dacbe71e392f400cee8e d41d8cd98f00b204e9800998ecf8427e 14880952.380952382\",\"/lab3/alu\":\"passed 936fccfa4372c323a3f696b9fa670991 d41d8cd98f00b204e9800998ecf8427e 380.00735694243014\",\"/lab3/cmp\":\"passed 6355914068755da4ec97aef09bff0249 d41d8cd98f00b204e9800998ecf8427e 835421.8880534668\",\"/lab3/arith\":\"passed 4155928fdb4d7f81d0bd0e143204a6b3 d41d8cd98f00b204e9800998ecf8427e 3204.1833818233094\",\"/lab3/bool\":\"passed c7df8e684087d93fba24badbd0072cc5 d41d8cd98f00b204e9800998ecf8427e 29592.80303030302\",\"/lab3/shift\":\"passed 5d334e9aa8f331b3e2b87f0497c8219a d41d8cd98f00b204e9800998ecf8427e 1571.3264352102808\"},\"state\":{\"/lab3/arith\":{\"schematic\":[[\"port\",[56,-40,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-16,-32,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-16,-16,0],{\"signal\":\"AFN\"}],[\"port\",[104,-32,4],{\"signal\":\"S[31:0]\",\"direction\":\"out\"}],[\"port\",[104,48,4],{\"signal\":\"V\",\"direction\":\"out\"}],[\"port\",[104,-96,4],{\"signal\":\"N\",\"direction\":\"out\"}],[\"port\",[104,-128,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/lab3/FA\",[80,-32,0]],[\"wire\",[80,-64,0,0,-8],{\"signal\":\"C[31:0]\"}],[\"wire\",[80,0,0,0,8],{\"signal\":\"C[30:0],AFN\"}],[\"/gates/xor2\",[-16,-32,0]],[\"wire\",[32,-24,0,24,0],{\"signal\":\"XB[31:0]\"}],[\"jumper\",[96,-96,0]],[\"wire\",[96,-96,0,-8,0],{\"signal\":\"S[31]\"}],[\"/gates/nor4\",[-160,-152,0]],[\"/gates/nand4\",[-48,-152,0]],[\"/gates/nor2\",[56,-136,0]],[\"wire\",[56,-136,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[56,-120,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[0,-128,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-48,-152,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-48,-136,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-48,-120,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-48,-104,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-112,-128,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-160,-152,0,-8,0],{\"signal\":\"S[31:24]\"}],[\"wire\",[-160,-136,0,-8,0],{\"signal\":\"S[23:16]\"}],[\"wire\",[-160,-120,0,-8,0],{\"signal\":\"S[15:8]\"}],[\"wire\",[-160,-104,0,-8,0],{\"signal\":\"S[7:0]\"}],[\"/gates/nand2\",[56,40,0]],[\"/gates/nand3\",[8,8,0]],[\"/gates/or3\",[8,56,0]],[\"wire\",[56,40,0,0,-16]],[\"wire\",[56,56,0,0,16]],[\"wire\",[8,8,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[8,24,0,-8,0],{\"signal\":\"XB[31]\"}],[\"wire\",[8,72,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[8,88,0,-8,0],{\"signal\":\"XB[31]\"}],[\"/gates/inverter\",[-24,40,0]],[\"wire\",[8,56,0,0,-16]],[\"wire\",[-24,40,0,-8,0],{\"signal\":\"S[31]\"}]]},\"/lab3/bool\":{\"schematic\":[[\"port\",[0,-72,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"port\",[-88,-56,0],{\"signal\":\"BFN[3:0]\"}],[\"port\",[-88,-72,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-88,-88,0],{\"signal\":\"A[31:0]\"}],[\"/gates/mux4\",[-16,-96,0]],[\"wire\",[-8,-32,0,-16,0],{\"signal\":\"B[31:0],A[31:0]\"}],[\"wire\",[-16,-48,0,-8,0],{\"signal\":\"BFN[0]\"}],[\"wire\",[-16,-64,0,-8,0],{\"signal\":\"BFN[1]\"}],[\"wire\",[-16,-80,0,-8,0],{\"signal\":\"BFN[2]\"}],[\"wire\",[-16,-96,0,-8,0],{\"signal\":\"BFN[3]\"}]]},\"/lab3/FA\":{\"schematic\":[[\"port\",[-104,-72,0],{\"signal\":\"A\"}],[\"port\",[-104,-56,0],{\"signal\":\"B\"}],[\"port\",[-104,-40,0],{\"signal\":\"Cin\"}],[\"port\",[-8,8,4],{\"signal\":\"Cout\",\"direction\":\"out\"}],[\"port\",[-8,-48,4],{\"signal\":\"S\",\"direction\":\"out\"}],[\"/gates/xor2\",[-56,-56,0]],[\"/gates/xor2\",[-104,-72,0]],[\"/gates/nand2\",[-104,-16,0]],[\"/gates/nand2\",[-104,16,0]],[\"/gates/nand2\",[-56,0,0]],[\"wire\",[-56,-8,0,0,8]],[\"wire\",[-56,16,0,0,8]],[\"wire\",[-56,-64,0,0,8],{\"signal\":\"P\"}],[\"wire\",[-56,-40,0,-48,0]],[\"wire\",[-104,-16,0,0,-24]],[\"wire\",[-104,0,0,-8,0],{\"signal\":\"P\"}],[\"wire\",[-104,16,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-104,32,0,-8,0],{\"signal\":\"B\"}]]},\"/lab3/cmp\":{\"schematic\":[[\"port\",[-120,32,0],{\"signal\":\"V\"}],[\"port\",[-120,16,0],{\"signal\":\"N\"}],[\"port\",[24,-24,4],{\"signal\":\"Y[31:1]\",\"direction\":\"out\"}],[\"port\",[24,0,4],{\"signal\":\"Y[0]\",\"direction\":\"out\"}],[\"jumper\",[16,-24,0]],[\"wire\",[16,-24,0,-8,0],{\"signal\":\"0'31\"}],[\"port\",[-72,-24,0],{\"signal\":\"Z\"}],[\"port\",[-136,-8,0],{\"signal\":\"CFN[1:0]\"}],[\"/gates/nand2\",[-24,-8,0]],[\"/gates/nand2\",[-72,-24,0]],[\"/gates/nand2\",[-72,8,0]],[\"wire\",[-24,8,0,0,8]],[\"wire\",[-24,-8,0,0,-8]],[\"/gates/xor2\",[-120,16,0]],[\"wire\",[-72,-8,0,-8,0],{\"signal\":\"CFN[0]\"}],[\"wire\",[-72,8,0,-8,0],{\"signal\":\"CFN[1]\"}]]},\"/lab3/shift\":{\"schematic\":[[\"port\",[-288,-144,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-288,-128,0],{\"signal\":\"B[4:0]\"}],[\"port\",[-288,-112,0],{\"signal\":\"SFN[1:0]\"}],[\"port\",[-80,0,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"/gates/mux2\",[-96,-8,0]],[\"wire\",[-96,-8,0,-8,0],{\"signal\":\"X[0:31]\"}],[\"wire\",[-96,8,0,-8,0],{\"signal\":\"X[31:0]\"}],[\"wire\",[-88,24,0,0,8],{\"signal\":\"SFN[0]\"}],[\"/gates/mux2\",[-192,-8,0]],[\"wire\",[-176,0,0,8,0],{\"signal\":\"X[31:0]\"}],[\"wire\",[-184,24,0,0,8],{\"signal\":\"B[0]\"}],[\"wire\",[-192,8,0,-8,0],{\"signal\":\"W[31:0]\"}],[\"wire\",[-192,-8,0,-8,0],{\"signal\":\"W[30:0],SIN\"}],[\"/gates/mux2\",[-304,-8,0]],[\"wire\",[-288,0,0,8,0],{\"signal\":\"W[31:0]\"}],[\"wire\",[-296,24,0,0,8],{\"signal\":\"B[1]\"}],[\"wire\",[-304,8,0,-8,0],{\"signal\":\"V[31:0]\"}],[\"wire\",[-304,-8,0,-8,0],{\"signal\":\"V[29:0],SIN#2\"}],[\"/gates/mux2\",[-80,-80,0]],[\"wire\",[-64,-72,0,8,0],{\"signal\":\"V[31:0]\"}],[\"wire\",[-72,-48,0,0,8],{\"signal\":\"B[2]\"}],[\"wire\",[-80,-64,0,-8,0],{\"signal\":\"U[31:0]\"}],[\"wire\",[-80,-80,0,-8,0],{\"signal\":\"U[27:0],SIN#4\"}],[\"/gates/mux2\",[-192,-80,0]],[\"wire\",[-176,-72,0,8,0],{\"signal\":\"U[31:0]\"}],[\"wire\",[-184,-48,0,0,8],{\"signal\":\"B[3]\"}],[\"wire\",[-192,-64,0,-8,0],{\"signal\":\"T[31:0]\"}],[\"wire\",[-192,-80,0,-8,0],{\"signal\":\"T[23:0],SIN#8\"}],[\"/gates/mux2\",[-304,-80,0]],[\"wire\",[-288,-72,0,8,0],{\"signal\":\"T[31:0]\"}],[\"wire\",[-296,-48,0,0,8],{\"signal\":\"B[4]\"}],[\"wire\",[-304,-64,0,-8,0],{\"signal\":\"S[31:0]\"}],[\"wire\",[-304,-80,0,-8,0],{\"signal\":\"S[15:0],SIN#16\"}],[\"/gates/mux2\",[-80,-144,0]],[\"wire\",[-80,-144,0,-8,0],{\"signal\":\"A[0:31]\"}],[\"wire\",[-80,-128,0,-8,0],{\"signal\":\"A[31:0]\"}],[\"wire\",[-72,-112,0,0,8],{\"signal\":\"SFN[0]\"}],[\"wire\",[-64,-136,0,8,0],{\"signal\":\"S[31:0]\"}],[\"/gates/and2\",[-208,-136,0]],[\"wire\",[-208,-120,0,-8,0],{\"signal\":\"SFN[1]\"}],[\"wire\",[-208,-136,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[-160,-128,0,8,0],{\"signal\":\"SIN\"}]]},\"/user/exor\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}}}},\"last_saved\":1457791812501}", "/lab4.html": "{\"tests\":{\"test\":\"The test program did not print out the expected result. Please check the lab writeup to see what result is expected.\"},\"state\":{\"Lab 4\":\"////////////////////////////////////////////////////////////////////////////////\\n// Lab 4\\n////////////////////////////////////////////////////////////////////////////////\\n\\n// Include the checkoff program:\\n.include \\\"checkoff.uasm\\\"\\n\\n// Leave the following as zero to run ALL the test cases, and get your solution\\n// validated if all pass. If you have trouble with test case N, set it to N\\n// to run JUST that test case (for easier debugging):\\nTestCase: LONG(0)\\n\\n// Quicksort-in-place code. We include the C/Python version here as a comment;\\n// you can use this as a model for your Beta assembly version:\\n\\n//def partition(array,left,right):\\n// # choose middle element of array as pivot\\n// pivotIndex = (left+right) >> 1;\\n// pivotValue = array[pivotIndex]\\n//\\n// # swap array[right] and array[pivotIndex]\\n// # note that we already store array[pivotIndex] in pivotValue\\n// array[pivotIndex] = array[right]\\n//\\n// # elements <= the pivot are moved to the left (smaller indices)\\n// storeIndex = left\\n// for i in xrange(left,right): # don't include array[right]\\n// temp = array[i]\\n// if temp <= pivotValue:\\n// array[i] = array[storeIndex]\\n// array[storeIndex] = temp\\n// storeIndex += 1\\n//\\n// # move pivot to its final place\\n// array[right] = array[storeIndex]\\n// array[storeIndex] = pivotValue;\\n// return storeIndex;\\n\\npartition:\\n PUSH(LP)\\n PUSH(BP)\\n MOVE(SP, BP)\\n\\n// Fill in your code here...\\n\\n MOVE(BP, SP)\\n POP(BP)\\n POP(LP)\\n JMP(LP)\\n\\n\\n//def quicksort(array, left, right):\\n// if left < right:\\n// pivotIndex = partition(array,left,right)\\n// quicksort(array,left,pivotIndex-1)\\n// quicksort(array,pivotIndex+1,right)\\n\\n// quicksort(ArrayBase, left, right)\\nquicksort:\\n PUSH(LP)\\n PUSH(BP)\\n MOVE(SP, BP)\\n\\n// Fill in your code here...\\n\\n MOVE(BP, SP)\\n POP(BP)\\n POP(LP)\\n JMP(LP)\\n\\n// Allocate a stack: SP is initialized by checkoff code.\\nStackBasePtr:\\n LONG(StackArea)\\n\\n.unprotect\\n\\nStackArea:\\n STORAGE(1000)\\n\"}}", "/labProject.html": "{\"tests\":{\"/lab5/test\":\"passed 327ee733491d310e278d231ad43f4abc d41d8cd98f00b204e9800998ecf8427e 5.728129063821275\"},\"state\":{\"/lab3/arith\":{\"schematic\":[[\"port\",[56,-40,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-16,-32,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-16,-16,0],{\"signal\":\"AFN\"}],[\"port\",[104,-32,4],{\"signal\":\"S[31:0]\",\"direction\":\"out\"}],[\"port\",[104,48,4],{\"signal\":\"V\",\"direction\":\"out\"}],[\"port\",[104,-96,4],{\"signal\":\"N\",\"direction\":\"out\"}],[\"port\",[104,-128,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/lab3/FA\",[80,-32,0]],[\"wire\",[80,-64,0,0,-8],{\"signal\":\"C[31:0]\"}],[\"wire\",[80,0,0,0,8],{\"signal\":\"C[30:0],AFN\"}],[\"/gates/xor2\",[-16,-32,0]],[\"wire\",[32,-24,0,24,0],{\"signal\":\"XB[31:0]\"}],[\"jumper\",[96,-96,0]],[\"wire\",[96,-96,0,-8,0],{\"signal\":\"S[31]\"}],[\"/gates/nor4\",[-160,-152,0]],[\"/gates/nand4\",[-48,-152,0]],[\"/gates/nor2\",[56,-136,0]],[\"wire\",[56,-136,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[56,-120,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[0,-128,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-48,-152,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-48,-136,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-48,-120,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-48,-104,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-112,-128,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-160,-152,0,-8,0],{\"signal\":\"S[31:24]\"}],[\"wire\",[-160,-136,0,-8,0],{\"signal\":\"S[23:16]\"}],[\"wire\",[-160,-120,0,-8,0],{\"signal\":\"S[15:8]\"}],[\"wire\",[-160,-104,0,-8,0],{\"signal\":\"S[7:0]\"}],[\"/gates/nand2\",[56,40,0]],[\"/gates/nand3\",[8,8,0]],[\"/gates/or3\",[8,56,0]],[\"wire\",[56,40,0,0,-16]],[\"wire\",[56,56,0,0,16]],[\"wire\",[8,8,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[8,24,0,-8,0],{\"signal\":\"XB[31]\"}],[\"wire\",[8,72,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[8,88,0,-8,0],{\"signal\":\"XB[31]\"}],[\"/gates/inverter\",[-24,40,0]],[\"wire\",[8,56,0,0,-16]],[\"wire\",[-24,40,0,-8,0],{\"signal\":\"S[31]\"}]]},\"/lab3/bool\":{\"schematic\":[[\"port\",[0,-72,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"port\",[-88,-56,0],{\"signal\":\"BFN[3:0]\"}],[\"port\",[-88,-72,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-88,-88,0],{\"signal\":\"A[31:0]\"}],[\"/gates/mux4\",[-16,-96,0]],[\"wire\",[-8,-32,0,-16,0],{\"signal\":\"B[31:0],A[31:0]\"}],[\"wire\",[-16,-48,0,-8,0],{\"signal\":\"BFN[0]\"}],[\"wire\",[-16,-64,0,-8,0],{\"signal\":\"BFN[1]\"}],[\"wire\",[-16,-80,0,-8,0],{\"signal\":\"BFN[2]\"}],[\"wire\",[-16,-96,0,-8,0],{\"signal\":\"BFN[3]\"}]]},\"/lab3/FA\":{\"schematic\":[[\"port\",[-104,-72,0],{\"signal\":\"A\"}],[\"port\",[-104,-56,0],{\"signal\":\"B\"}],[\"port\",[-104,-40,0],{\"signal\":\"Cin\"}],[\"port\",[-8,8,4],{\"signal\":\"Cout\",\"direction\":\"out\"}],[\"port\",[-8,-48,4],{\"signal\":\"S\",\"direction\":\"out\"}],[\"/gates/xor2\",[-56,-56,0]],[\"/gates/xor2\",[-104,-72,0]],[\"/gates/nand2\",[-104,-16,0]],[\"/gates/nand2\",[-104,16,0]],[\"/gates/nand2\",[-56,0,0]],[\"wire\",[-56,-8,0,0,8]],[\"wire\",[-56,16,0,0,8]],[\"wire\",[-56,-64,0,0,8],{\"signal\":\"P\"}],[\"wire\",[-56,-40,0,-48,0]],[\"wire\",[-104,-16,0,0,-24]],[\"wire\",[-104,0,0,-8,0],{\"signal\":\"P\"}],[\"wire\",[-104,16,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-104,32,0,-8,0],{\"signal\":\"B\"}]]},\"/lab3/cmp\":{\"schematic\":[[\"port\",[-120,32,0],{\"signal\":\"V\"}],[\"port\",[-120,16,0],{\"signal\":\"N\"}],[\"port\",[24,-24,4],{\"signal\":\"Y[31:1]\",\"direction\":\"out\"}],[\"port\",[24,0,4],{\"signal\":\"Y[0]\",\"direction\":\"out\"}],[\"jumper\",[16,-24,0]],[\"wire\",[16,-24,0,-8,0],{\"signal\":\"0'31\"}],[\"port\",[-72,-24,0],{\"signal\":\"Z\"}],[\"port\",[-136,-8,0],{\"signal\":\"CFN[1:0]\"}],[\"/gates/nand2\",[-24,-8,0]],[\"/gates/nand2\",[-72,-24,0]],[\"/gates/nand2\",[-72,8,0]],[\"wire\",[-24,8,0,0,8]],[\"wire\",[-24,-8,0,0,-8]],[\"/gates/xor2\",[-120,16,0]],[\"wire\",[-72,-8,0,-8,0],{\"signal\":\"CFN[0]\"}],[\"wire\",[-72,8,0,-8,0],{\"signal\":\"CFN[1]\"}]]},\"/lab3/shift\":{\"schematic\":[[\"port\",[-312,-144,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-312,-128,0],{\"signal\":\"B[4:0]\"}],[\"port\",[-312,-112,0],{\"signal\":\"SFN[1:0]\"}],[\"port\",[-80,0,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"/gates/mux2\",[-96,-8,0]],[\"wire\",[-96,-8,0,-8,0],{\"signal\":\"X[0:31]\"}],[\"wire\",[-96,8,0,-8,0],{\"signal\":\"X[31:0]\"}],[\"wire\",[-88,24,0,0,8],{\"signal\":\"FN[0]\"}],[\"/gates/mux2\",[-192,-8,0]],[\"wire\",[-176,0,0,8,0],{\"signal\":\"X[31:0]\"}],[\"wire\",[-184,24,0,0,8],{\"signal\":\"BB[0]\"}],[\"wire\",[-192,8,0,-8,0],{\"signal\":\"W[31:0]\"}],[\"wire\",[-192,-8,0,-8,0],{\"signal\":\"W[30:0],SIN\"}],[\"/gates/mux2\",[-304,-8,0]],[\"wire\",[-288,0,0,8,0],{\"signal\":\"W[31:0]\"}],[\"wire\",[-296,24,0,0,8],{\"signal\":\"BB[1]\"}],[\"wire\",[-304,8,0,-8,0],{\"signal\":\"V[31:0]\"}],[\"wire\",[-304,-8,0,-8,0],{\"signal\":\"V[29:0],SIN#2\"}],[\"/gates/mux2\",[-80,-80,0]],[\"wire\",[-64,-72,0,8,0],{\"signal\":\"V[31:0]\"}],[\"wire\",[-72,-48,0,0,8],{\"signal\":\"BB[2]\"}],[\"wire\",[-80,-64,0,-8,0],{\"signal\":\"U[31:0]\"}],[\"wire\",[-80,-80,0,-8,0],{\"signal\":\"U[27:0],SIN#4\"}],[\"/gates/mux2\",[-192,-80,0]],[\"wire\",[-176,-72,0,8,0],{\"signal\":\"U[31:0]\"}],[\"wire\",[-184,-48,0,0,8],{\"signal\":\"BB[3]\"}],[\"wire\",[-192,-64,0,-8,0],{\"signal\":\"T[31:0]\"}],[\"wire\",[-192,-80,0,-8,0],{\"signal\":\"T[23:0],SIN#8\"}],[\"/gates/mux2\",[-304,-80,0]],[\"wire\",[-288,-72,0,8,0],{\"signal\":\"T[31:0]\"}],[\"wire\",[-296,-48,0,0,8],{\"signal\":\"BB[4]\"}],[\"wire\",[-304,-64,0,-8,0],{\"signal\":\"S[31:0]\"}],[\"wire\",[-304,-80,0,-8,0],{\"signal\":\"S[15:0],SIN#16\"}],[\"/gates/mux2\",[-80,-144,0]],[\"wire\",[-80,-144,0,-8,0],{\"signal\":\"A[0:31]\"}],[\"wire\",[-80,-128,0,-8,0],{\"signal\":\"A[31:0]\"}],[\"wire\",[-72,-112,0,0,8],{\"signal\":\"FN[0]\"}],[\"wire\",[-64,-136,0,8,0],{\"signal\":\"S[31:0]\"}],[\"/gates/and2\",[-208,-136,0]],[\"wire\",[-208,-120,0,-8,0],{\"signal\":\"FN[1]\"}],[\"wire\",[-208,-136,0,-8,0],{\"signal\":\"A[31]\"}],[\"wire\",[-160,-128,0,8,0],{\"signal\":\"SIN\"}],[\"/gates/buffer\",[-312,-128,0]],[\"wire\",[-280,-128,0,8,0],{\"signal\":\"BB[4:0]\"}],[\"/gates/buffer\",[-312,-112,0]],[\"wire\",[-280,-112,0,8,0],{\"signal\":\"FN[1:0]\"}]]},\"/lab5/beta\":{\"schematic\":[[\"/lab5/ctl\",[-328,-200,0],{\"name\":\"ctl\"}],[\"wire\",[-384,-224,0,-8,0],{\"signal\":\"id[31:26]\"}],[\"wire\",[-384,-208,0,-8,0],{\"signal\":\"reset\"}],[\"/gates/and2\",[-448,-200,0]],[\"wire\",[-400,-192,0,16,0]],[\"wire\",[-448,-200,0,-8,0],{\"signal\":\"irq\"}],[\"/gates/inverter\",[-480,-184,0]],[\"wire\",[-480,-184,0,-8,0],{\"signal\":\"ia[31]\"}],[\"wire\",[-384,-176,0,-8,0],{\"signal\":\"Z\"}],[\"wire\",[-304,-224,0,8,0],{\"signal\":\"alufn[5:0]\"}],[\"wire\",[-304,-208,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-304,-192,0,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-304,-176,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-304,-160,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-304,-144,0,8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-304,-128,0,8,0],{\"signal\":\"ra2sel\"}],[\"wire\",[-304,-112,0,8,0],{\"signal\":\"wasel\"}],[\"wire\",[-304,-96,0,8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-304,-80,0,8,0],{\"signal\":\"werf\"}],[\"/lab5/pc\",[-392,-352,0],{\"name\":\"pc\"}],[\"wire\",[-400,-280,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-400,-296,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-400,-312,0,-8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-400,-328,0,-8,0],{\"signal\":\"jt[31:2]\"}],[\"wire\",[-400,-344,0,-8,0],{\"signal\":\"bid[15],id[14:0]\"}],[\"wire\",[-304,-328,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-304,-312,0,8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"wire\",[-304,-296,0,8,0],{\"signal\":\"pc_offset[31:0]\"}],[\"/lab5/regfile\",[-136,-288,0],{\"name\":\"regfile\"}],[\"wire\",[-160,-368,0,0,-8],{\"signal\":\"id[20:16]\"}],[\"wire\",[-96,-368,0,0,-8],{\"signal\":\"id[15:11]\"}],[\"wire\",[-200,-344,0,-8,0],{\"signal\":\"id[30]\"}],[\"wire\",[-200,-328,0,-8,0],{\"signal\":\"id[25:21]\"}],[\"wire\",[-200,-312,0,-8,0],{\"signal\":\"wasel\"}],[\"wire\",[-200,-296,0,-8,0],{\"signal\":\"werf\"}],[\"wire\",[-200,-280,0,-8,0],{\"signal\":\"clk\"}],[\"/lab3/alu\",[-128,-152,1]],[\"wire\",[-168,-160,0,-8,0],{\"signal\":\"alufn[5:0]\"}],[\"/gates/mux4\",[-96,-88,1]],[\"wire\",[-96,-88,0,0,-8]],[\"wire\",[-96,-96,0,8,0],{\"signal\":\"0'32\"}],[\"wire\",[-112,-88,0,0,-24]],[\"wire\",[-112,-112,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-88,-128,0,-40,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-128,-88,0,0,-40]],[\"wire\",[-128,-136,0,0,8]],[\"wire\",[-120,-72,0,0,8],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-56,-312,0,8,0],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-160,-80,0,-8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-144,-88,0,0,-8]],[\"wire\",[-144,-96,0,-8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"/gates/mux2\",[-80,-240,1]],[\"/gates/mux2\",[-176,-224,7]],[\"wire\",[-144,-216,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-112,-232,4,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-144,-184,0,-24,0]],[\"wire\",[-168,-184,0,0,-24],{\"width\":\"32\"}],[\"wire\",[-160,-224,0,0,-32],{\"signal\":\"jt[31:0]\"}],[\"wire\",[-176,-224,0,0,-8]],[\"wire\",[-176,-232,0,-8,0],{\"signal\":\"0'1,pc_offset[30:0]\"}],[\"wire\",[-112,-184,0,24,0]],[\"wire\",[-88,-184,0,0,-40],{\"width\":\"32\"}],[\"wire\",[-96,-240,0,0,-16],{\"signal\":\"mwd[31:0]\"}],[\"port\",[-80,-432,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/gates/nor4\",[-344,-456,0]],[\"/gates/nand4\",[-232,-456,0]],[\"/gates/nor2\",[-128,-440,0]],[\"wire\",[-128,-440,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[-128,-424,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[-184,-432,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-232,-456,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-232,-440,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-232,-424,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-232,-408,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-296,-432,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-344,-456,0,-8,0],{\"signal\":\"JT[31:24]\"}],[\"wire\",[-344,-440,0,-8,0],{\"signal\":\"JT[23:16]\"}],[\"wire\",[-344,-424,0,-8,0],{\"signal\":\"JT[15:8]\"}],[\"wire\",[-344,-408,0,-8,0],{\"signal\":\"JT[7:0]\"}],[\"wire\",[-304,-344,0,8,0],{\"signal\":\"next_ia[31:0]\"}],[\"/gates/buffer\",[-272,-264,0]],[\"wire\",[-272,-264,0,-8,0],{\"signal\":\"id[15]\"}],[\"wire\",[-240,-264,0,8,0],{\"signal\":\"bid[15]\"}],[\"wire\",[-48,-240,0,-32,0],{\"signal\":\"bid[15]#17,id[14:0]\"}]]},\"/lab5/ctl\":{\"schematic\":[[\"port\",[96,56,4],{\"signal\":\"ra2sel\",\"direction\":\"out\"}],[\"port\",[96,-24,4],{\"signal\":\"asel\",\"direction\":\"out\"}],[\"port\",[96,-8,4],{\"signal\":\"bsel\",\"direction\":\"out\"}],[\"port\",[96,-40,4],{\"signal\":\"alufn[5:0]\",\"direction\":\"out\"}],[\"port\",[96,88,4],{\"signal\":\"wdsel[1:0]\",\"direction\":\"out\"}],[\"port\",[96,72,4],{\"signal\":\"wasel\",\"direction\":\"out\"}],[\"port\",[96,104,4],{\"signal\":\"werf\",\"direction\":\"out\"}],[\"port\",[96,40,4],{\"signal\":\"pcsel[2:0]\",\"direction\":\"out\"}],[\"port\",[96,8,4],{\"signal\":\"moe\",\"direction\":\"out\"}],[\"port\",[96,24,4],{\"signal\":\"mwr\",\"direction\":\"out\"}],[\"port\",[-168,-64,0],{\"signal\":\"op[5:0]\"}],[\"port\",[64,48,0],{\"signal\":\"reset\"}],[\"port\",[-120,128,0],{\"signal\":\"irq\"}],[\"port\",[-152,0,0],{\"signal\":\"z\"}],[\"memory\",[-168,-64,0],{\"naddr\":\"6\",\"ndata\":\"18\",\"name\":\"ctlrom\",\"contents\":\"// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b??????_??_?0_011_?_1001 // 0b000000 \\n0b??????_??_?0_011_?_1001 // 0b000001 \\n0b??????_??_?0_011_?_1001 // 0b000010 \\n0b??????_??_?0_011_?_1001 // 0b000011 \\n0b??????_??_?0_011_?_1001 // 0b000100 \\n0b??????_??_?0_011_?_1001 // 0b000101 \\n0b??????_??_?0_011_?_1001 // 0b000110 \\n0b??????_??_?0_011_?_1001 // 0b000111 \\n \\n0b??????_??_?0_011_?_1001 // 0b001000 \\n0b??????_??_?0_011_?_1001 // 0b001001 \\n0b??????_??_?0_011_?_1001 // 0b001010 \\n0b??????_??_?0_011_?_1001 // 0b001011 \\n0b??????_??_?0_011_?_1001 // 0b001100 \\n0b??????_??_?0_011_?_1001 // 0b001101 \\n0b??????_??_?0_011_?_1001 // 0b001110 \\n0b??????_??_?0_011_?_1001 // 0b001111\\n\\n// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b??????_??_?0_011_?_1001 // 0b010000 \\n0b??????_??_?0_011_?_1001 // 0b010001 \\n0b??????_??_?0_011_?_1001 // 0b010010 \\n0b??????_??_?0_011_?_1001 // 0b010011 \\n0b??????_??_?0_011_?_1001 // 0b010100 \\n0b??????_??_?0_011_?_1001 // 0b010101 \\n0b??????_??_?0_011_?_1001 // 0b010110 \\n0b??????_??_?0_011_?_1001 // 0b010111 \\n \\n0b010000_01_10_000_?_0101 // 0b011000 LD \\n0b010000_01_?1_000_1_???0 // 0b011001 ST \\n0b??????_??_?0_011_?_1001 // 0b011010 \\n0b??????_??_?0_010_?_0001 // 0b011011 JMP \\n0b??????_??_?0_110_?_0001 // 0b011100 BEQ \\n0b??????_??_?0_111_?_0001 // 0b011101 BNE \\n0b??????_??_?0_011_?_1001 // 0b011110 \\n0b101010_1?_10_000_?_0101 // 0b011111 LDR \\n \\n// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b010000_00_?0_000_0_0011 // 0b100000 ADD \\n0b010001_00_?0_000_0_0011 // 0b100001 SUB \\n0b??????_??_?0_011_?_1001 // 0b100010 MUL \\n0b??????_??_?0_011_?_1001 // 0b100011 DIV \\n0b000011_00_?0_000_0_0011 // 0b100100 CMPEQ \\n0b000101_00_?0_000_0_0011 // 0b100101 CMPLT \\n0b000111_00_?0_000_0_0011 // 0b100110 CMPLE \\n0b??????_??_?0_011_?_1001 // 0b100111 \\n \\n0b101000_00_?0_000_0_0011 // 0b101000 AND \\n0b101110_00_?0_000_0_0011 // 0b101001 OR \\n0b100110_00_?0_000_0_0011 // 0b101010 XOR \\n0b101001_00_?0_000_0_0011 // 0b101011 XNOR \\n0b110000_00_?0_000_0_0011 // 0b101100 SHL \\n0b110001_00_?0_000_0_0011 // 0b101101 SHR \\n0b110011_00_?0_000_0_0011 // 0b101110 SRA \\n0b??????_??_?0_011_?_1001 // 0b101111\\n\\n// alufn[5:0] \\n// asel, bsel \\n// moe, mwr \\n// pcsel[2:0] \\n// ra2sel \\n// wasel, wdsel[2:0], werf \\n0b010000_01_?0_000_?_0011 // 0b110000 ADDC \\n0b010001_01_?0_000_?_0011 // 0b110001 SUBC \\n0b??????_??_?0_011_?_1001 // 0b110010 MULC \\n0b??????_??_?0_011_?_1001 // 0b110011 DIVC \\n0b000011_01_?0_000_?_0011 // 0b110100 CMPEQC \\n0b000101_01_?0_000_?_0011 // 0b110101 CMPLTC \\n0b000111_01_?0_000_?_0011 // 0b110110 CMPLEC \\n0b??????_??_?0_011_?_1001 // 0b110111 \\n \\n0b101000_01_?0_000_?_0011 // 0b111000 ANDC \\n0b101110_01_?0_000_?_0011 // 0b111001 ORC \\n0b100110_01_?0_000_?_0011 // 0b111010 XORC \\n0b101001_01_?0_000_?_0011 // 0b111011 XNORC \\n0b110000_01_?0_000_?_0011 // 0b111100 SHLC \\n0b110001_01_?0_000_?_0011 // 0b111101 SHRC \\n0b110011_01_?0_000_?_0011 // 0b111110 SRAC \\n0b??????_??_?0_011_?_1001 // 0b111111\"}],[\"wire\",[-168,-56,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[-168,-48,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-168,-40,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-96,-64,0,8,0],{\"signal\":\"alufn[5:0],asel,bsel,moe,xmwr,xpcsel[2:0],ra2sel,xwasel,xwdsel[1:0],xwerf\"}],[\"/gates/xor2\",[-152,-16,0]],[\"wire\",[-152,-16,0,-8,0],{\"signal\":\"xpcsel[0]\"}],[\"wire\",[-104,-8,0,8,0],{\"signal\":\"branch\"}],[\"/gates/mux2\",[-120,24,0]],[\"wire\",[-104,32,0,8,0],{\"signal\":\"ypcsel[2:0]\"}],[\"wire\",[-120,24,0,-8,0],{\"signal\":\"0'2,branch\"}],[\"wire\",[-120,40,0,-8,0],{\"signal\":\"xpcsel[2:0]\"}],[\"/gates/and2\",[-160,56,0]],[\"wire\",[-112,56,0,0,8]],[\"wire\",[-160,56,0,-8,0],{\"signal\":\"xpcsel[1]\"}],[\"wire\",[-160,72,0,-8,0],{\"signal\":\"xpcsel[2]\"}],[\"/gates/mux2\",[64,16,0]],[\"wire\",[80,24,0,16,0]],[\"wire\",[64,48,0,8,0]],[\"wire\",[64,32,0,-8,0],{\"signal\":\"ymwr\"}],[\"wire\",[64,16,0,-8,0],{\"signal\":\"0'1\"}],[\"/gates/mux2\",[-120,96,0]],[\"wire\",[-104,104,0,8,0],{\"signal\":\"pcsel[2:0],ymwr,wasel,wdsel[1:0],werf\"}],[\"wire\",[-120,128,0,8,0]],[\"wire\",[-120,112,0,-8,0],{\"signal\":\"ypcsel[2:0],xmwr,xwasel,xwdsel[1:0],xwerf\"}],[\"wire\",[-120,96,0,-8,0],{\"signal\":\"4'3,0'1,1'1,0'2,1'1\"}]]},\"/lab5/pc\":{\"icon\":[[\"terminal\",[-8,8,0],{\"name\":\"ID[15:0]\"}],[\"terminal\",[-8,24,0],{\"name\":\"JT[31:2]\"}],[\"terminal\",[88,24,4],{\"name\":\"PC[31:0]\"}],[\"text\",[40,-3,0],{\"text\":\"PC\",\"align\":\"center\",\"font\":\"bold 6pt sans-serif\"}],[\"text\",[1,8,0],{\"text\":\"ID[15:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[1,24,0],{\"text\":\"JT[31:2]\",\"font\":\"4pt sans-serif\"}],[\"text\",[1,56,0],{\"text\":\"RESET\",\"font\":\"4pt sans-serif\"}],[\"text\",[79,24,0],{\"text\":\"PC[31:0]\",\"font\":\"4pt sans-serif\",\"align\":\"center-right\"}],[\"terminal\",[-8,40,0],{\"name\":\"PCSEL[2:0]\"}],[\"text\",[1,40,1],{\"text\":\"PCSEL[2:0]\",\"font\":\"4pt sans-serif\",\"align\":\"bottom-center\"}],[\"line\",[0,76,1,-4,-8]],[\"line\",[8,72,1,-4,8]],[\"terminal\",[88,40,4],{\"name\":\"PC_INC[31:0]\"}],[\"text\",[79,40,0],{\"text\":\"PC_INC[31:0]\",\"font\":\"4pt sans-serif\",\"align\":\"center-right\"}],[\"property\",[40,-10,0],{\"format\":\"{name}\",\"align\":\"bottom-center\"}],[\"terminal\",[-8,56,0],{\"name\":\"RESET\"}],[\"terminal\",[-8,72,0],{\"name\":\"CLK\"}],[\"terminal\",[88,56,4],{\"name\":\"PC_OFFSET[31:0]\"}],[\"text\",[79,56,0],{\"text\":\"PC_OFFSET[31:0]\",\"font\":\"4pt sans-serif\",\"align\":\"center-right\"}],[\"line\",[0,-8,0,0,88]],[\"line\",[0,80,0,80,0]],[\"line\",[80,80,0,0,-88]],[\"line\",[80,-8,0,-80,0]],[\"terminal\",[88,8,4],{\"name\":\"NEXT_IA[31:0]\"}],[\"text\",[79,8,0],{\"text\":\"NEXT_IA[31:0]\",\"font\":\"4pt sans-serif\",\"align\":\"center-right\"}]],\"schematic\":[[\"port\",[16,-40,4],{\"signal\":\"PC[31:0]\",\"direction\":\"out\"}],[\"port\",[8,64,4],{\"signal\":\"PC_OFFSET[31:0]\",\"direction\":\"out\"}],[\"/gates/dreg\",[-24,-40,0]],[\"/gates/mux2\",[-72,-48,0]],[\"/gates/mux2\",[-120,-40,0]],[\"wire\",[-72,-48,0,-8,0]],[\"wire\",[-80,-48,0,0,-32],{\"signal\":\"0x80000000'32\"}],[\"wire\",[-104,-32,0,32,0],{\"width\":\"32\"}],[\"wire\",[-112,24,0,0,8],{\"signal\":\"PCSEL[2]\"}],[\"wire\",[-120,-40,0,-8,0]],[\"wire\",[-128,-40,0,0,-32],{\"signal\":\"0x80000008'32\"}],[\"/gates/mux4\",[-168,-48,0]],[\"wire\",[-152,-24,0,32,0],{\"width\":\"32\"}],[\"wire\",[-224,16,1,0,8],{\"signal\":\"PCSEL[1:0]\"}],[\"wire\",[-168,0,0,-8,0],{\"signal\":\"PC_INC[31:0]\"}],[\"wire\",[-168,-16,0,-8,0],{\"signal\":\"PC_OFFSET[31:0]\"}],[\"wire\",[-168,-32,0,-8,0],{\"signal\":\"JTMSB,JT[30:2],GND#2\"}],[\"wire\",[-168,-48,0,-8,0],{\"signal\":\"0x80000004'32\"}],[\"/lab3/FA\",[8,128,0]],[\"wire\",[32,128,0,8,0],{\"signal\":\"OFFSET[30:2]\"}],[\"wire\",[-16,136,0,-8,0],{\"signal\":\"INC[30:2]\"}],[\"wire\",[-16,120,0,-8,0],{\"signal\":\"ID[15]#13,ID[15:0]\"}],[\"wire\",[8,160,0,0,8],{\"signal\":\"Coff[29:2],0'1\"}],[\"wire\",[8,96,0,0,-8],{\"signal\":\"Coff[30:2]\"}],[\"jumper\",[0,64,0]],[\"wire\",[0,64,0,-8,0],{\"signal\":\"PC[31],OFFSET[30:2],GND#2\"}],[\"wire\",[-64,-16,0,0,8],{\"signal\":\"RESET\"}],[\"wire\",[-56,-40,0,32,0],{\"signal\":\"NEXT_IA[31:0]\"}],[\"wire\",[-24,-24,0,-8,0],{\"signal\":\"CLK\"}],[\"/gates/and2\",[-232,-96,0]],[\"wire\",[-232,-96,0,-8,0],{\"signal\":\"JT[31]\"}],[\"wire\",[-232,-80,0,-8,0],{\"signal\":\"PC[31]\"}],[\"wire\",[-184,-88,0,8,0],{\"signal\":\"JTMSB\"}],[\"/lab3/HA\",[-184,136,0]],[\"wire\",[-192,160,0,0,8],{\"signal\":\"Cinc[29:2],1'1\"}],[\"wire\",[-192,96,0,0,-8],{\"signal\":\"Cinc[30:2]\"}],[\"wire\",[-160,128,0,8,0],{\"signal\":\"INC[30:2]\"}],[\"wire\",[-224,128,0,-8,0],{\"signal\":\"PC[30:2]\"}],[\"port\",[-192,64,4],{\"signal\":\"PC_INC[31:0]\",\"direction\":\"out\"}],[\"jumper\",[-200,64,0]],[\"wire\",[-200,64,0,-8,0],{\"signal\":\"PC[31],INC[30:2],GND#2\"}],[\"/gates/buffer_h\",[-224,16,0]],[\"wire\",[-192,16,0,32,0],{\"width\":\"2\"}],[\"/gates/buffer_h\",[-112,24,3]]]},\"/lab5/regfile\":{\"schematic\":[[\"port\",[32,-8,4],{\"signal\":\"radata[31:0]\",\"direction\":\"out\"}],[\"port\",[32,32,4],{\"signal\":\"rbdata[31:0]\",\"direction\":\"out\"}],[\"port\",[-176,72,0],{\"signal\":\"rc[4:0]\"}],[\"port\",[-112,80,0],{\"signal\":\"werf\"}],[\"port\",[-112,88,0],{\"signal\":\"clk\"}],[\"port\",[-176,24,0],{\"signal\":\"rb[4:0]\"}],[\"port\",[-112,-16,0],{\"signal\":\"ra[4:0]\"}],[\"port\",[-40,64,4],{\"signal\":\"wdata[31:0]\"}],[\"port\",[-176,88,0],{\"signal\":\"wasel\"}],[\"port\",[-176,40,0],{\"signal\":\"ra2sel\"}],[\"memory\",[-112,-16,0],{\"nports\":\"3\",\"naddr\":\"5\",\"ndata\":\"32\",\"name\":\"regfile\"}],[\"wire\",[-112,72,0,-8,0],{\"signal\":\"0'1\"}],[\"/gates/mux2\",[-176,56,0]],[\"wire\",[-168,88,0,-8,0]],[\"wire\",[-176,56,0,-8,0],{\"signal\":\"30'5\"}],[\"wire\",[-160,64,0,48,0],{\"width\":\"5\"}],[\"wire\",[-112,48,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,40,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,32,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[-112,8,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,0,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-112,-8,0,-8,0],{\"signal\":\"1'1\"}],[\"/gates/mux2\",[-176,8,0]],[\"wire\",[-168,40,0,-8,0]],[\"wire\",[-160,16,0,16,0]],[\"wire\",[-144,16,0,0,8]],[\"wire\",[-144,24,0,32,0],{\"signal\":\"ra2[4:0]\"}],[\"wire\",[-176,8,0,-8,0],{\"signal\":\"rc[4:0]\"}],[\"/gates/and2\",[-16,24,0]],[\"wire\",[-16,24,0,-24,0],{\"width\":\"32\"}],[\"wire\",[-16,40,0,-8,0],{\"signal\":\"rben\"}],[\"/gates/and2\",[-16,-16,0]],[\"wire\",[-16,0,0,-8,0],{\"signal\":\"raen\"}],[\"wire\",[-40,-16,0,24,0],{\"width\":\"32\"}],[\"/gates/and3\",[-104,112,0]],[\"wire\",[-56,144,0,-8,0],{\"signal\":\"ra[3]\"}],[\"wire\",[-56,160,0,-8,0],{\"signal\":\"ra[4]\"}],[\"wire\",[-104,112,0,-8,0],{\"signal\":\"ra[0]\"}],[\"wire\",[-104,128,0,-8,0],{\"signal\":\"ra[1]\"}],[\"wire\",[-104,144,0,-8,0],{\"signal\":\"ra[2]\"}],[\"/gates/nand3\",[-56,128,0]],[\"wire\",[-8,144,0,8,0],{\"signal\":\"raen\"}],[\"/gates/and3\",[-104,176,0]],[\"wire\",[-56,208,0,-8,0],{\"signal\":\"ra2[3]\"}],[\"wire\",[-56,224,0,-8,0],{\"signal\":\"ra2[4]\"}],[\"wire\",[-104,176,0,-8,0],{\"signal\":\"ra2[0]\"}],[\"wire\",[-104,192,0,-8,0],{\"signal\":\"ra2[1]\"}],[\"wire\",[-104,208,0,-8,0],{\"signal\":\"ra2[2]\"}],[\"/gates/nand3\",[-56,192,0]],[\"wire\",[-8,208,0,8,0],{\"signal\":\"rben\"}]]},\"/project/test\":{\"schematic\":[[\"memory\",[48,-24,0],{\"name\":\"Main\",\"nports\":\"2\",\"naddr\":\"10\",\"ndata\":\"32\",\"contents\":\"// Design project benchmark -- DO NOT MODIFY!\\n+ 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 0x739f008e 0x739f00b1 0x739f0117 0x739f0129\\n+ 0x739f0134 0x679f0718 0x73ffffff 0x0000071c 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000\\n+ 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 0x67dc000c 0x10000000 0x67dc0010 0x14000000\\n+ 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 0x67dc001c 0x20000000 0x67dc0020 0x24000000\\n+ 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 0x67dc002c 0x30000000 0x67dc0030 0x34000000\\n+ 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 0x67dc003c 0x40000000 0x67dc0040 0x44000000\\n+ 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 0x67dc004c 0x50000000 0x67dc0050 0x54000000\\n+ 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060\\n+ 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000\\n+ 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800\\n+ 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 0x906db800 0x83c21800 0x67dc0090 0x944d6800\\n+ 0x946db800 0x83c21800 0x67dc0094 0x984d6800 0x98776800 0x83c21800 0x67dc0098 0x9c000000\\n+ 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800\\n+ 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8\\n+ 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0\\n+ 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0\\n+ 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0\\n+ 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a\\n+ 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 0x739f0005 0x643f0634 0x641f0638 0x639dfffc\\n+ 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000\\n+ 0x77e60003 0x84002000 0x80632800 0x73ff0002 0x80002000 0x84632800 0xc4420001 0xd4c20000\\n+ 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004\\n+ 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc\\n+ 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc\\n+ 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 0x73e10005 0x60410004 0x64010004 0x8001f800\\n+ 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc\\n+ 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800\\n+ 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0\\n+ 0x77e00001 0x73e1000a 0x73e10007 0x60400000 0x60610000 0x90421800 0x73e20003 0x60000004\\n+ 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc\\n+ 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000\\n+ 0x00000001 0x00000488 0x0000000a 0x00000490 0x00000003 0x00000478 0x00000009 0x00000448\\n+ 0x00000005 0x00000470 0x00000007 0x00000480 0x00000006 0x00000468 0x00000004 0x00000460\\n+ 0x00000008 0x00000458 0x00000002 0x00000450 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc\\n+ 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004\\n+ 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 0xc0000001 0xc0210003 0x80000800 0x80200800\\n+ 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc\\n+ 0x641f0714 0x6ffc0000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed\\n+ 0x00000001 0x00000000 0x0000000a 0x00000658 0x00000003 0x00000688 0x00000009 0x00000680\\n+ 0x00000005 0x00000678 0x00000007 0x00000670 0x00000006 0x00000660 0x00000004 0x00000650\\n+ 0x00000008 0x00000668 0x00000002 0x00000640 0x0000000b 0x00000648 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0xedededed 0x0badbabe 0xedededed 0x00000000\\n\"}],[\"wire\",[120,-24,0,8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[48,-24,0,-8,0],{\"signal\":\"ia[11:2]\"}],[\"wire\",[48,-16,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[48,-8,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,0,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,16,0,-8,0],{\"signal\":\"ma[11:2]\"}],[\"wire\",[48,32,0,-8,0],{\"signal\":\"mwr\"}],[\"wire\",[48,40,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,56,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,40,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-160,24,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-160,8,0,-8,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-160,-8,0,-8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[-64,-8,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-64,8,0,8,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-64,24,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-64,40,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-64,56,0,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[48,24,0,-8,0],{\"signal\":\"moe\"}],[\"text\",[21,-81,0],{\"text\":\"The contents of main memory have\"}],[\"text\",[22,-70,0],{\"text\":\"been initialized with the binary for the\"}],[\"text\",[22,-59,0],{\"text\":\"Design Project test program.\"}],[\"/gates/tristate\",[136,48,3]],[\"wire\",[152,32,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[136,48,1,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[136,16,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[136,16,0,-16,0]],[\"/lab5/beta\",[-128,40,0],{\"name\":\"beta\"}]],\"test\":[[\"test\",\".power Vdd=1\\n.thresholds Vol=0 Vil=0.1 Vih=0.9 Voh=1\\n\\n.group inputs RESET\\n.mode gate\\n\\n.cycle CLK=1 tran 1n assert inputs tran 3.4n CLK=0 tran 4.4n\\n\\n1\\n.repeat 1140\\n0\\n\\n// Verify correct completion of benchmark -- DO NOT MODIFY!\\n.mverify Main 0x0 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 // Beta addr 0x0\\n.mverify Main 0x4 0x00000000 0x00000000 0x00000000 0x00000000 // Beta addr 0x10\\n.mverify Main 0x8 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 // Beta addr 0x20\\n.mverify Main 0xc 0x739f008e 0x739f00b1 0x739f0117 0x739f0129 // Beta addr 0x30\\n.mverify Main 0x10 0x739f0134 0x679f0718 0x73ffffff 0x0000071c // Beta addr 0x40\\n.mverify Main 0x14 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000 // Beta addr 0x50\\n.mverify Main 0x18 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 // Beta addr 0x60\\n.mverify Main 0x1c 0x67dc000c 0x10000000 0x67dc0010 0x14000000 // Beta addr 0x70\\n.mverify Main 0x20 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 // Beta addr 0x80\\n.mverify Main 0x24 0x67dc001c 0x20000000 0x67dc0020 0x24000000 // Beta addr 0x90\\n.mverify Main 0x28 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 // Beta addr 0xa0\\n.mverify Main 0x2c 0x67dc002c 0x30000000 0x67dc0030 0x34000000 // Beta addr 0xb0\\n.mverify Main 0x30 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 // Beta addr 0xc0\\n.mverify Main 0x34 0x67dc003c 0x40000000 0x67dc0040 0x44000000 // Beta addr 0xd0\\n.mverify Main 0x38 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 // Beta addr 0xe0\\n.mverify Main 0x3c 0x67dc004c 0x50000000 0x67dc0050 0x54000000 // Beta addr 0xf0\\n.mverify Main 0x40 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 // Beta addr 0x100\\n.mverify Main 0x44 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060 // Beta addr 0x110\\n.mverify Main 0x48 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 // Beta addr 0x120\\n.mverify Main 0x4c 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000 // Beta addr 0x130\\n.mverify Main 0x50 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 // Beta addr 0x140\\n.mverify Main 0x54 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800 // Beta addr 0x150\\n.mverify Main 0x58 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 // Beta addr 0x160\\n.mverify Main 0x5c 0x906db800 0x83c21800 0x67dc0090 0x944d6800 // Beta addr 0x170\\n.mverify Main 0x60 0x946db800 0x83c21800 0x67dc0094 0x984d6800 // Beta addr 0x180\\n.mverify Main 0x64 0x98776800 0x83c21800 0x67dc0098 0x9c000000 // Beta addr 0x190\\n.mverify Main 0x68 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 // Beta addr 0x1a0\\n.mverify Main 0x6c 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800 // Beta addr 0x1b0\\n.mverify Main 0x70 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 // Beta addr 0x1c0\\n.mverify Main 0x74 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8 // Beta addr 0x1d0\\n.mverify Main 0x78 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 // Beta addr 0x1e0\\n.mverify Main 0x7c 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0 // Beta addr 0x1f0\\n.mverify Main 0x80 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 // Beta addr 0x200\\n.mverify Main 0x84 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0 // Beta addr 0x210\\n.mverify Main 0x88 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 // Beta addr 0x220\\n.mverify Main 0x8c 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0 // Beta addr 0x230\\n.mverify Main 0x90 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 // Beta addr 0x240\\n.mverify Main 0x94 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc // Beta addr 0x250\\n.mverify Main 0x98 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 // Beta addr 0x260\\n.mverify Main 0x9c 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a // Beta addr 0x270\\n.mverify Main 0xa0 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 // Beta addr 0x280\\n.mverify Main 0xa4 0x739f0005 0x643f0634 0x641f0638 0x639dfffc // Beta addr 0x290\\n.mverify Main 0xa8 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 // Beta addr 0x2a0\\n.mverify Main 0xac 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000 // Beta addr 0x2b0\\n.mverify Main 0xb0 0x77e60003 0x84002000 0x80632800 0x73ff0002 // Beta addr 0x2c0\\n.mverify Main 0xb4 0x80002000 0x84632800 0xc4420001 0xd4c20000 // Beta addr 0x2d0\\n.mverify Main 0xb8 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 // Beta addr 0x2e0\\n.mverify Main 0xbc 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004 // Beta addr 0x2f0\\n.mverify Main 0xc0 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc // Beta addr 0x300\\n.mverify Main 0xc4 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc // Beta addr 0x310\\n.mverify Main 0xc8 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f // Beta addr 0x320\\n.mverify Main 0xcc 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc // Beta addr 0x330\\n.mverify Main 0xd0 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 // Beta addr 0x340\\n.mverify Main 0xd4 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc // Beta addr 0x350\\n.mverify Main 0xd8 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 // Beta addr 0x360\\n.mverify Main 0xdc 0x73e10005 0x60410004 0x64010004 0x8001f800 // Beta addr 0x370\\n.mverify Main 0xe0 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc // Beta addr 0x380\\n.mverify Main 0xe4 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc // Beta addr 0x390\\n.mverify Main 0xe8 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 // Beta addr 0x3a0\\n.mverify Main 0xec 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 // Beta addr 0x3b0\\n.mverify Main 0xf0 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc // Beta addr 0x3c0\\n.mverify Main 0xf4 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0 // Beta addr 0x3d0\\n.mverify Main 0xf8 0x77e00001 0x73e1000a 0x73e10007 0x60400000 // Beta addr 0x3e0\\n.mverify Main 0xfc 0x60610000 0x90421800 0x73e20003 0x60000004 // Beta addr 0x3f0\\n.mverify Main 0x100 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 // Beta addr 0x400\\n.mverify Main 0x104 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc // Beta addr 0x410\\n.mverify Main 0x108 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc // Beta addr 0x420\\n.mverify Main 0x10c 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x430\\n.mverify Main 0x110 0x00000001 0x00000488 0x0000000a 0x00000490 // Beta addr 0x440\\n.mverify Main 0x114 0x00000003 0x00000478 0x00000009 0x00000448 // Beta addr 0x450\\n.mverify Main 0x118 0x00000005 0x00000470 0x00000007 0x00000480 // Beta addr 0x460\\n.mverify Main 0x11c 0x00000006 0x00000468 0x00000004 0x00000460 // Beta addr 0x470\\n.mverify Main 0x120 0x00000008 0x00000458 0x00000002 0x00000450 // Beta addr 0x480\\n.mverify Main 0x124 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc // Beta addr 0x490\\n.mverify Main 0x128 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c // Beta addr 0x4a0\\n.mverify Main 0x12c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x4b0\\n.mverify Main 0x130 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x4c0\\n.mverify Main 0x134 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x4d0\\n.mverify Main 0x138 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 // Beta addr 0x4e0\\n.mverify Main 0x13c 0xc0000001 0xc0210003 0x80000800 0x80200800 // Beta addr 0x4f0\\n.mverify Main 0x140 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 // Beta addr 0x500\\n.mverify Main 0x144 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc // Beta addr 0x510\\n.mverify Main 0x148 0x641f0714 0x6ffc0000 0x00000000 0x80000060 // Beta addr 0x520\\n.mverify Main 0x14c 0x80000068 0x80000070 0x80000078 0x80000080 // Beta addr 0x530\\n.mverify Main 0x150 0x80000088 0x80000090 0x80000098 0x800000a0 // Beta addr 0x540\\n.mverify Main 0x154 0x800000a8 0x800000b0 0x800000b8 0x800000c0 // Beta addr 0x550\\n.mverify Main 0x158 0x800000c8 0x800000d0 0x800000d8 0x800000e0 // Beta addr 0x560\\n.mverify Main 0x15c 0x800000e8 0x800000f0 0x800000f8 0x80000100 // Beta addr 0x570\\n.mverify Main 0x160 0x80000108 0x80000110 0x73ff0008 0x00000000 // Beta addr 0x580\\n.mverify Main 0x164 0x80000124 0x00000134 0x00000140 0x00000148 // Beta addr 0x590\\n.mverify Main 0x168 0x00000154 0xdeadbeef 0x52acbef7 0x6aaebee7 // Beta addr 0x5a0\\n.mverify Main 0x16c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5b0\\n.mverify Main 0x170 0x00000001 0x000001a0 0x52ad0008 0xffffbeef // Beta addr 0x5c0\\n.mverify Main 0x174 0xad52bee7 0x52ad4118 0x3ff00080 0x073ff000 // Beta addr 0x5d0\\n.mverify Main 0x178 0x073ff000 0x000001e4 0x00000000 0xdeadbef0 // Beta addr 0x5e0\\n.mverify Main 0x17c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5f0\\n.mverify Main 0x180 0x00000001 0x00000214 0x00003644 0xffffffff // Beta addr 0x600\\n.mverify Main 0x184 0x21524110 0xdeadbeef 0x73ff0008 0x037ab6fb // Beta addr 0x610\\n.mverify Main 0x188 0xffbd5b7d 0x00000254 0xedededed 0x00001998 // Beta addr 0x620\\n.mverify Main 0x18c 0x00000001 0x00000367 0x00000000 0x00000001 // Beta addr 0x630\\n.mverify Main 0x190 0x00000001 0x00000688 0x0000000a 0x00000690 // Beta addr 0x640\\n.mverify Main 0x194 0x00000003 0x00000678 0x00000009 0x00000648 // Beta addr 0x650\\n.mverify Main 0x198 0x00000005 0x00000670 0x00000007 0x00000680 // Beta addr 0x660\\n.mverify Main 0x19c 0x00000006 0x00000668 0x00000004 0x00000660 // Beta addr 0x670\\n.mverify Main 0x1a0 0x00000008 0x00000658 0x00000002 0x00000650 // Beta addr 0x680\\n.mverify Main 0x1a4 0x0000000b 0x00000000 0x739f0000 0xc01f003c // Beta addr 0x690\\n.mverify Main 0x1a8 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x6a0\\n.mverify Main 0x1ac 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x6b0\\n.mverify Main 0x1b0 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x6c0\\n.mverify Main 0x1b4 0x6ffc0000 0x739f0000 0xc01f003c 0x80c7f800 // Beta addr 0x6d0\\n.mverify Main 0x1b8 0x603cfffc 0x64270000 0xc39c0004 0xc0e70004 // Beta addr 0x6e0\\n.mverify Main 0x1bc 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 // Beta addr 0x6f0\\n.mverify Main 0x1c0 0x6fe60000 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x700\\n.mverify Main 0x1c4 0x5d7bd920 0x00000044 0x00000044 // Beta addr 0x710\\n\\n.plotdef reg R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31\\n\\n.plotdef op ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? LD ST ??? JMP BEQ BNE ??? LDR ADD SUB MUL DIV CMPEQ CMPLT CMPLE ??? AND OR XOR XNOR SHL SHR SRA ??? ADDC SUBC MULC DIVC CMPEQC CMPLTC CMPLEC ??? ANDC ORC XORC XNORC SHLC SHRC SRAC ???\\n\\n.plot clk\\n.plot reset\\n.plot X(ia[31:0])\\n.plot X(id[31:0])\\n.plot op(id[31:26])\\n.plot reg(id[20:16])\\n.plot reg(id[15:11])\\n.plot reg(id[25:21])\\n.plot X(ma[31:0])\\n.plot moe\\n.plot X(mrd[31:0])\\n.plot mwr\\n.plot X(mwd[31:0])\\n\\n\"]]},\"/lab3/HA\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"port\",[-40,-40,0],{\"signal\":\"A\"}],[\"port\",[-40,-24,0],{\"signal\":\"Cin\"}],[\"port\",[8,24,4],{\"signal\":\"Cout\",\"direction\":\"out\"}],[\"port\",[8,-32,4],{\"signal\":\"S\",\"direction\":\"out\"}],[\"/gates/xor2\",[-40,-40,0]],[\"/gates/and2\",[-40,16,0]],[\"wire\",[-40,16,0,-8,0],{\"signal\":\"A\"}],[\"wire\",[-40,32,0,-8,0],{\"signal\":\"CIN\"}]],\"icon\":[[\"terminal\",[-40,-8,0],{\"name\":\"A\"}],[\"terminal\",[24,-8,2],{\"name\":\"S\"}],[\"terminal\",[-8,-40,1],{\"name\":\"COUT\"}],[\"terminal\",[-8,24,3],{\"name\":\"CIN\"}],[\"text\",[-30,-8,0],{\"text\":\"A\"}],[\"text\",[14,-8,0],{\"text\":\"S\",\"align\":\"center-right\"}],[\"text\",[-8,-30,0],{\"text\":\"COUT\",\"align\":\"top-center\"}],[\"text\",[-8,14,0],{\"text\":\"CIN\",\"align\":\"bottom-center\"}],[\"text\",[-8,-8,0],{\"text\":\"HA\",\"font\":\"10pt bold sans-serif\",\"align\":\"center\"}],[\"line\",[-32,-32,0,48,0]],[\"line\",[16,-32,0,0,48]],[\"line\",[16,16,0,-48,0]],[\"line\",[-32,16,0,0,-48]]],\"test\":[[\"test\",\"\"]]},\"/user/untitled\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"test\":[[\"test\",\"\"]]},\"/lab5/beta2\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"/lab5/ctl\",[-328,-200,0],{\"name\":\"ctl\"}],[\"wire\",[-384,-224,0,-8,0],{\"signal\":\"id[31:26]\"}],[\"wire\",[-384,-208,0,-8,0],{\"signal\":\"reset\"}],[\"/gates/and2\",[-448,-200,0]],[\"wire\",[-400,-192,0,16,0]],[\"wire\",[-448,-200,0,-8,0],{\"signal\":\"irq\"}],[\"/gates/inverter\",[-480,-184,0]],[\"wire\",[-480,-184,0,-8,0],{\"signal\":\"ia[31]\"}],[\"wire\",[-384,-176,0,-8,0],{\"signal\":\"Z\"}],[\"wire\",[-304,-224,0,8,0],{\"signal\":\"alufn[5:0]\"}],[\"wire\",[-304,-208,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-304,-192,0,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-304,-176,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-304,-160,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-304,-144,0,8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-304,-128,0,8,0],{\"signal\":\"ra2sel\"}],[\"wire\",[-304,-112,0,8,0],{\"signal\":\"wasel\"}],[\"wire\",[-304,-96,0,8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-304,-80,0,8,0],{\"signal\":\"werf\"}],[\"/lab5/pc\",[-392,-352,0],{\"name\":\"pc\"}],[\"wire\",[-400,-280,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-400,-296,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-400,-312,0,-8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-400,-328,0,-8,0],{\"signal\":\"jt[31:2]\"}],[\"wire\",[-400,-344,0,-8,0],{\"signal\":\"bid[15],id[14:0]\"}],[\"wire\",[-304,-328,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-304,-312,0,8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"wire\",[-304,-296,0,8,0],{\"signal\":\"pc_offset[31:0]\"}],[\"/lab5/regfile\",[-136,-288,0],{\"name\":\"regfile\"}],[\"wire\",[-160,-368,0,0,-8],{\"signal\":\"id[20:16]\"}],[\"wire\",[-96,-368,0,0,-8],{\"signal\":\"id[15:11]\"}],[\"wire\",[-200,-344,0,-8,0],{\"signal\":\"id[30]\"}],[\"wire\",[-200,-328,0,-8,0],{\"signal\":\"id[25:21]\"}],[\"wire\",[-200,-312,0,-8,0],{\"signal\":\"wasel\"}],[\"wire\",[-200,-296,0,-8,0],{\"signal\":\"werf\"}],[\"wire\",[-200,-280,0,-8,0],{\"signal\":\"clk\"}],[\"/lab3/alu\",[-128,-152,1]],[\"wire\",[-168,-160,0,-8,0],{\"signal\":\"alufn[5:0]\"}],[\"/gates/mux4\",[-96,-88,1]],[\"wire\",[-96,-88,0,0,-8]],[\"wire\",[-96,-96,0,8,0],{\"signal\":\"0'32\"}],[\"wire\",[-112,-88,0,0,-24]],[\"wire\",[-112,-112,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-88,-128,0,-40,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-128,-88,0,0,-40]],[\"wire\",[-128,-136,0,0,8]],[\"wire\",[-120,-72,0,0,8],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-56,-312,0,8,0],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-160,-80,0,-8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-144,-88,0,0,-8]],[\"wire\",[-144,-96,0,-8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"/gates/mux2\",[-80,-240,1]],[\"/gates/mux2\",[-176,-224,7]],[\"wire\",[-144,-216,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-112,-232,4,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-144,-184,0,-24,0]],[\"wire\",[-168,-184,0,0,-24],{\"width\":\"32\"}],[\"wire\",[-160,-224,0,0,-32],{\"signal\":\"jt[31:0]\"}],[\"wire\",[-72,-248,3,0,-8],{\"signal\":\"bid[15]#17,id[14:0]\"}],[\"wire\",[-176,-224,0,0,-8]],[\"wire\",[-176,-232,0,-8,0],{\"signal\":\"0'1,pc_offset[30:0]\"}],[\"wire\",[-80,-240,0,0,-8]],[\"wire\",[-112,-184,0,24,0]],[\"wire\",[-88,-184,0,0,-40],{\"width\":\"32\"}],[\"wire\",[-96,-240,0,0,-16],{\"signal\":\"mwd[31:0]\"}],[\"port\",[-80,-432,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/gates/nor4\",[-344,-456,0]],[\"/gates/nand4\",[-232,-456,0]],[\"/gates/nor2\",[-128,-440,0]],[\"wire\",[-128,-440,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[-128,-424,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[-184,-432,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-232,-456,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-232,-440,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-232,-424,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-232,-408,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-296,-432,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-344,-456,0,-8,0],{\"signal\":\"JT[31:24]\"}],[\"wire\",[-344,-440,0,-8,0],{\"signal\":\"JT[23:16]\"}],[\"wire\",[-344,-424,0,-8,0],{\"signal\":\"JT[15:8]\"}],[\"wire\",[-344,-408,0,-8,0],{\"signal\":\"JT[7:0]\"}],[\"wire\",[-304,-344,0,8,0],{\"signal\":\"next_ia[31:0]\"}],[\"/gates/dreg\",[-256,-504,0]],[\"wire\",[-216,-504,0,8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[-256,-504,0,-8,0],{\"signal\":\"next_id[31:0]\"}],[\"wire\",[-256,-488,0,-8,0],{\"signal\":\"clk\"}],[\"/gates/buffer\",[-120,-496,0]],[\"wire\",[-120,-496,0,-8,0],{\"signal\":\"id[15]\"}],[\"wire\",[-88,-496,0,8,0],{\"signal\":\"bid[15]\"}]],\"test\":[[\"test\",\"\"]],\"icon\":[[\"terminal\",[-32,16,0],{\"name\":\"clk\"}],[\"terminal\",[-32,0,0],{\"name\":\"reset\"}],[\"terminal\",[-32,-16,0],{\"name\":\"irq\"}],[\"terminal\",[-32,-32,0],{\"name\":\"mrd[31:0]\"}],[\"terminal\",[-32,-48,0],{\"name\":\"next_id[31:0]\"}],[\"text\",[-23,-48,0],{\"text\":\"ID[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,-32,0],{\"text\":\"MRD[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,-16,0],{\"text\":\"IRQ\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,0,0],{\"text\":\"RESET\",\"font\":\"4pt sans-serif\"}],[\"line\",[-16,16,0,-8,4]],[\"line\",[-16,16,0,-8,-4]],[\"terminal\",[64,-48,4],{\"name\":\"next_ia[31:0]\"}],[\"text\",[55,-48,4],{\"text\":\"IA[31:0]\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,-32,4],{\"name\":\"ma[31:0]\"}],[\"text\",[55,-32,4],{\"text\":\"MA[31:0]\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,-16,4],{\"name\":\"moe\"}],[\"text\",[55,-16,4],{\"text\":\"MOE\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,0,4],{\"name\":\"mwr\"}],[\"text\",[55,0,4],{\"text\":\"MWR\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,16,4],{\"name\":\"mwd[31:0]\"}],[\"text\",[55,16,4],{\"text\":\"MWD[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[16,-59,0],{\"text\":\"BETA2\",\"font\":\"bold 6pt sans-serif\",\"align\":\"center\"}],[\"line\",[-24,-64,0,0,88]],[\"line\",[-24,24,0,80,0]],[\"line\",[56,24,0,0,-88]],[\"line\",[56,-64,0,-80,0]],[\"property\",[16,-66,0],{\"format\":\"{name}\",\"align\":\"bottom-center\"}]]},\"/projest/test2\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"memory\",[48,-24,0],{\"name\":\"Main\",\"nports\":\"2\",\"naddr\":\"10\",\"ndata\":\"32\",\"contents\":\"// Design project benchmark -- DO NOT MODIFY!\\n+ 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 0x739f008e 0x739f00b1 0x739f0117 0x739f0129\\n+ 0x739f0134 0x679f0718 0x73ffffff 0x0000071c 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000\\n+ 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 0x67dc000c 0x10000000 0x67dc0010 0x14000000\\n+ 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 0x67dc001c 0x20000000 0x67dc0020 0x24000000\\n+ 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 0x67dc002c 0x30000000 0x67dc0030 0x34000000\\n+ 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 0x67dc003c 0x40000000 0x67dc0040 0x44000000\\n+ 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 0x67dc004c 0x50000000 0x67dc0050 0x54000000\\n+ 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060\\n+ 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000\\n+ 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800\\n+ 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 0x906db800 0x83c21800 0x67dc0090 0x944d6800\\n+ 0x946db800 0x83c21800 0x67dc0094 0x984d6800 0x98776800 0x83c21800 0x67dc0098 0x9c000000\\n+ 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800\\n+ 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8\\n+ 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0\\n+ 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0\\n+ 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0\\n+ 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a\\n+ 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 0x739f0005 0x643f0634 0x641f0638 0x639dfffc\\n+ 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000\\n+ 0x77e60003 0x84002000 0x80632800 0x73ff0002 0x80002000 0x84632800 0xc4420001 0xd4c20000\\n+ 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004\\n+ 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc\\n+ 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc\\n+ 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 0x73e10005 0x60410004 0x64010004 0x8001f800\\n+ 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc\\n+ 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800\\n+ 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0\\n+ 0x77e00001 0x73e1000a 0x73e10007 0x60400000 0x60610000 0x90421800 0x73e20003 0x60000004\\n+ 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc\\n+ 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000\\n+ 0x00000001 0x00000488 0x0000000a 0x00000490 0x00000003 0x00000478 0x00000009 0x00000448\\n+ 0x00000005 0x00000470 0x00000007 0x00000480 0x00000006 0x00000468 0x00000004 0x00000460\\n+ 0x00000008 0x00000458 0x00000002 0x00000450 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc\\n+ 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004\\n+ 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 0xc0000001 0xc0210003 0x80000800 0x80200800\\n+ 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc\\n+ 0x641f0714 0x6ffc0000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed\\n+ 0x00000001 0x00000000 0x0000000a 0x00000658 0x00000003 0x00000688 0x00000009 0x00000680\\n+ 0x00000005 0x00000678 0x00000007 0x00000670 0x00000006 0x00000660 0x00000004 0x00000650\\n+ 0x00000008 0x00000668 0x00000002 0x00000640 0x0000000b 0x00000648 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0xedededed 0x0badbabe 0xedededed 0x00000000\\n\"}],[\"wire\",[120,-24,0,8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[48,-24,0,-8,0],{\"signal\":\"ia[11:2]\"}],[\"wire\",[48,-16,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[48,-8,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,0,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,16,0,-8,0],{\"signal\":\"ma[11:2]\"}],[\"wire\",[48,32,0,-8,0],{\"signal\":\"mwr\"}],[\"wire\",[48,40,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,56,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,40,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-160,24,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-160,8,0,-8,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-160,-8,0,-8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[-64,-8,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-64,8,0,8,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-64,24,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-64,40,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-64,56,0,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[48,24,0,-8,0],{\"signal\":\"moe\"}],[\"text\",[21,-81,0],{\"text\":\"The contents of main memory have\"}],[\"text\",[22,-70,0],{\"text\":\"been initialized with the binary for the\"}],[\"text\",[22,-59,0],{\"text\":\"Design Project test program.\"}],[\"/gates/tristate\",[136,48,3]],[\"wire\",[152,32,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[136,48,1,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[136,16,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[136,16,0,-16,0]],[\"/lab5/beta2\",[-128,40,0],{\"name\":\"beta2\"}]],\"test\":[[\"test\",\".power Vdd=1\\n.thresholds Vol=0 Vil=0.1 Vih=0.9 Voh=1\\n\\n.group inputs RESET\\n.mode gate\\n\\n.cycle CLK=1 tran 1n assert inputs tran 3.4n CLK=0 tran 4.4n\\n\\n1\\n.repeat 1140\\n0\\n\\n// Verify correct completion of benchmark -- DO NOT MODIFY!\\n.mverify Main 0x0 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 // Beta addr 0x0\\n.mverify Main 0x4 0x00000000 0x00000000 0x00000000 0x00000000 // Beta addr 0x10\\n.mverify Main 0x8 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 // Beta addr 0x20\\n.mverify Main 0xc 0x739f008e 0x739f00b1 0x739f0117 0x739f0129 // Beta addr 0x30\\n.mverify Main 0x10 0x739f0134 0x679f0718 0x73ffffff 0x0000071c // Beta addr 0x40\\n.mverify Main 0x14 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000 // Beta addr 0x50\\n.mverify Main 0x18 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 // Beta addr 0x60\\n.mverify Main 0x1c 0x67dc000c 0x10000000 0x67dc0010 0x14000000 // Beta addr 0x70\\n.mverify Main 0x20 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 // Beta addr 0x80\\n.mverify Main 0x24 0x67dc001c 0x20000000 0x67dc0020 0x24000000 // Beta addr 0x90\\n.mverify Main 0x28 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 // Beta addr 0xa0\\n.mverify Main 0x2c 0x67dc002c 0x30000000 0x67dc0030 0x34000000 // Beta addr 0xb0\\n.mverify Main 0x30 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 // Beta addr 0xc0\\n.mverify Main 0x34 0x67dc003c 0x40000000 0x67dc0040 0x44000000 // Beta addr 0xd0\\n.mverify Main 0x38 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 // Beta addr 0xe0\\n.mverify Main 0x3c 0x67dc004c 0x50000000 0x67dc0050 0x54000000 // Beta addr 0xf0\\n.mverify Main 0x40 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 // Beta addr 0x100\\n.mverify Main 0x44 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060 // Beta addr 0x110\\n.mverify Main 0x48 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 // Beta addr 0x120\\n.mverify Main 0x4c 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000 // Beta addr 0x130\\n.mverify Main 0x50 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 // Beta addr 0x140\\n.mverify Main 0x54 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800 // Beta addr 0x150\\n.mverify Main 0x58 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 // Beta addr 0x160\\n.mverify Main 0x5c 0x906db800 0x83c21800 0x67dc0090 0x944d6800 // Beta addr 0x170\\n.mverify Main 0x60 0x946db800 0x83c21800 0x67dc0094 0x984d6800 // Beta addr 0x180\\n.mverify Main 0x64 0x98776800 0x83c21800 0x67dc0098 0x9c000000 // Beta addr 0x190\\n.mverify Main 0x68 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 // Beta addr 0x1a0\\n.mverify Main 0x6c 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800 // Beta addr 0x1b0\\n.mverify Main 0x70 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 // Beta addr 0x1c0\\n.mverify Main 0x74 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8 // Beta addr 0x1d0\\n.mverify Main 0x78 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 // Beta addr 0x1e0\\n.mverify Main 0x7c 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0 // Beta addr 0x1f0\\n.mverify Main 0x80 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 // Beta addr 0x200\\n.mverify Main 0x84 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0 // Beta addr 0x210\\n.mverify Main 0x88 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 // Beta addr 0x220\\n.mverify Main 0x8c 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0 // Beta addr 0x230\\n.mverify Main 0x90 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 // Beta addr 0x240\\n.mverify Main 0x94 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc // Beta addr 0x250\\n.mverify Main 0x98 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 // Beta addr 0x260\\n.mverify Main 0x9c 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a // Beta addr 0x270\\n.mverify Main 0xa0 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 // Beta addr 0x280\\n.mverify Main 0xa4 0x739f0005 0x643f0634 0x641f0638 0x639dfffc // Beta addr 0x290\\n.mverify Main 0xa8 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 // Beta addr 0x2a0\\n.mverify Main 0xac 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000 // Beta addr 0x2b0\\n.mverify Main 0xb0 0x77e60003 0x84002000 0x80632800 0x73ff0002 // Beta addr 0x2c0\\n.mverify Main 0xb4 0x80002000 0x84632800 0xc4420001 0xd4c20000 // Beta addr 0x2d0\\n.mverify Main 0xb8 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 // Beta addr 0x2e0\\n.mverify Main 0xbc 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004 // Beta addr 0x2f0\\n.mverify Main 0xc0 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc // Beta addr 0x300\\n.mverify Main 0xc4 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc // Beta addr 0x310\\n.mverify Main 0xc8 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f // Beta addr 0x320\\n.mverify Main 0xcc 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc // Beta addr 0x330\\n.mverify Main 0xd0 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 // Beta addr 0x340\\n.mverify Main 0xd4 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc // Beta addr 0x350\\n.mverify Main 0xd8 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 // Beta addr 0x360\\n.mverify Main 0xdc 0x73e10005 0x60410004 0x64010004 0x8001f800 // Beta addr 0x370\\n.mverify Main 0xe0 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc // Beta addr 0x380\\n.mverify Main 0xe4 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc // Beta addr 0x390\\n.mverify Main 0xe8 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 // Beta addr 0x3a0\\n.mverify Main 0xec 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 // Beta addr 0x3b0\\n.mverify Main 0xf0 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc // Beta addr 0x3c0\\n.mverify Main 0xf4 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0 // Beta addr 0x3d0\\n.mverify Main 0xf8 0x77e00001 0x73e1000a 0x73e10007 0x60400000 // Beta addr 0x3e0\\n.mverify Main 0xfc 0x60610000 0x90421800 0x73e20003 0x60000004 // Beta addr 0x3f0\\n.mverify Main 0x100 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 // Beta addr 0x400\\n.mverify Main 0x104 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc // Beta addr 0x410\\n.mverify Main 0x108 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc // Beta addr 0x420\\n.mverify Main 0x10c 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x430\\n.mverify Main 0x110 0x00000001 0x00000488 0x0000000a 0x00000490 // Beta addr 0x440\\n.mverify Main 0x114 0x00000003 0x00000478 0x00000009 0x00000448 // Beta addr 0x450\\n.mverify Main 0x118 0x00000005 0x00000470 0x00000007 0x00000480 // Beta addr 0x460\\n.mverify Main 0x11c 0x00000006 0x00000468 0x00000004 0x00000460 // Beta addr 0x470\\n.mverify Main 0x120 0x00000008 0x00000458 0x00000002 0x00000450 // Beta addr 0x480\\n.mverify Main 0x124 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc // Beta addr 0x490\\n.mverify Main 0x128 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c // Beta addr 0x4a0\\n.mverify Main 0x12c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x4b0\\n.mverify Main 0x130 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x4c0\\n.mverify Main 0x134 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x4d0\\n.mverify Main 0x138 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 // Beta addr 0x4e0\\n.mverify Main 0x13c 0xc0000001 0xc0210003 0x80000800 0x80200800 // Beta addr 0x4f0\\n.mverify Main 0x140 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 // Beta addr 0x500\\n.mverify Main 0x144 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc // Beta addr 0x510\\n.mverify Main 0x148 0x641f0714 0x6ffc0000 0x00000000 0x80000060 // Beta addr 0x520\\n.mverify Main 0x14c 0x80000068 0x80000070 0x80000078 0x80000080 // Beta addr 0x530\\n.mverify Main 0x150 0x80000088 0x80000090 0x80000098 0x800000a0 // Beta addr 0x540\\n.mverify Main 0x154 0x800000a8 0x800000b0 0x800000b8 0x800000c0 // Beta addr 0x550\\n.mverify Main 0x158 0x800000c8 0x800000d0 0x800000d8 0x800000e0 // Beta addr 0x560\\n.mverify Main 0x15c 0x800000e8 0x800000f0 0x800000f8 0x80000100 // Beta addr 0x570\\n.mverify Main 0x160 0x80000108 0x80000110 0x73ff0008 0x00000000 // Beta addr 0x580\\n.mverify Main 0x164 0x80000124 0x00000134 0x00000140 0x00000148 // Beta addr 0x590\\n.mverify Main 0x168 0x00000154 0xdeadbeef 0x52acbef7 0x6aaebee7 // Beta addr 0x5a0\\n.mverify Main 0x16c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5b0\\n.mverify Main 0x170 0x00000001 0x000001a0 0x52ad0008 0xffffbeef // Beta addr 0x5c0\\n.mverify Main 0x174 0xad52bee7 0x52ad4118 0x3ff00080 0x073ff000 // Beta addr 0x5d0\\n.mverify Main 0x178 0x073ff000 0x000001e4 0x00000000 0xdeadbef0 // Beta addr 0x5e0\\n.mverify Main 0x17c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5f0\\n.mverify Main 0x180 0x00000001 0x00000214 0x00003644 0xffffffff // Beta addr 0x600\\n.mverify Main 0x184 0x21524110 0xdeadbeef 0x73ff0008 0x037ab6fb // Beta addr 0x610\\n.mverify Main 0x188 0xffbd5b7d 0x00000254 0xedededed 0x00001998 // Beta addr 0x620\\n.mverify Main 0x18c 0x00000001 0x00000367 0x00000000 0x00000001 // Beta addr 0x630\\n.mverify Main 0x190 0x00000001 0x00000688 0x0000000a 0x00000690 // Beta addr 0x640\\n.mverify Main 0x194 0x00000003 0x00000678 0x00000009 0x00000648 // Beta addr 0x650\\n.mverify Main 0x198 0x00000005 0x00000670 0x00000007 0x00000680 // Beta addr 0x660\\n.mverify Main 0x19c 0x00000006 0x00000668 0x00000004 0x00000660 // Beta addr 0x670\\n.mverify Main 0x1a0 0x00000008 0x00000658 0x00000002 0x00000650 // Beta addr 0x680\\n.mverify Main 0x1a4 0x0000000b 0x00000000 0x739f0000 0xc01f003c // Beta addr 0x690\\n.mverify Main 0x1a8 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x6a0\\n.mverify Main 0x1ac 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x6b0\\n.mverify Main 0x1b0 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x6c0\\n.mverify Main 0x1b4 0x6ffc0000 0x739f0000 0xc01f003c 0x80c7f800 // Beta addr 0x6d0\\n.mverify Main 0x1b8 0x603cfffc 0x64270000 0xc39c0004 0xc0e70004 // Beta addr 0x6e0\\n.mverify Main 0x1bc 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 // Beta addr 0x6f0\\n.mverify Main 0x1c0 0x6fe60000 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x700\\n.mverify Main 0x1c4 0x5d7bd920 0x00000044 0x00000044 // Beta addr 0x710\\n\\n.plotdef reg R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31\\n\\n.plotdef op ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? LD ST ??? JMP BEQ BNE ??? LDR ADD SUB MUL DIV CMPEQ CMPLT CMPLE ??? AND OR XOR XNOR SHL SHR SRA ??? ADDC SUBC MULC DIVC CMPEQC CMPLTC CMPLEC ??? ANDC ORC XORC XNORC SHLC SHRC SRAC ???\\n\\n.plot clk\\n.plot reset\\n.plot X(ia[31:0])\\n.plot X(id[31:0])\\n.plot op(id[31:26])\\n.plot reg(id[20:16])\\n.plot reg(id[15:11])\\n.plot reg(id[25:21])\\n.plot X(ma[31:0])\\n.plot moe\\n.plot X(mrd[31:0])\\n.plot mwr\\n.plot X(mwd[31:0])\\n\\n\"]]},\"/project/test2\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"memory\",[48,-24,0],{\"name\":\"Main\",\"nports\":\"2\",\"naddr\":\"10\",\"ndata\":\"32\",\"contents\":\"// Design project benchmark -- DO NOT MODIFY!\\n+ 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 0x739f008e 0x739f00b1 0x739f0117 0x739f0129\\n+ 0x739f0134 0x679f0718 0x73ffffff 0x0000071c 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000\\n+ 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 0x67dc000c 0x10000000 0x67dc0010 0x14000000\\n+ 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 0x67dc001c 0x20000000 0x67dc0020 0x24000000\\n+ 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 0x67dc002c 0x30000000 0x67dc0030 0x34000000\\n+ 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 0x67dc003c 0x40000000 0x67dc0040 0x44000000\\n+ 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 0x67dc004c 0x50000000 0x67dc0050 0x54000000\\n+ 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060\\n+ 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000\\n+ 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800\\n+ 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 0x906db800 0x83c21800 0x67dc0090 0x944d6800\\n+ 0x946db800 0x83c21800 0x67dc0094 0x984d6800 0x98776800 0x83c21800 0x67dc0098 0x9c000000\\n+ 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800\\n+ 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8\\n+ 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0\\n+ 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0\\n+ 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0\\n+ 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a\\n+ 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 0x739f0005 0x643f0634 0x641f0638 0x639dfffc\\n+ 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000\\n+ 0x77e60003 0x84002000 0x80632800 0x73ff0002 0x80002000 0x84632800 0xc4420001 0xd4c20000\\n+ 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004\\n+ 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc\\n+ 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc\\n+ 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 0x73e10005 0x60410004 0x64010004 0x8001f800\\n+ 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc\\n+ 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800\\n+ 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0\\n+ 0x77e00001 0x73e1000a 0x73e10007 0x60400000 0x60610000 0x90421800 0x73e20003 0x60000004\\n+ 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc\\n+ 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000\\n+ 0x00000001 0x00000488 0x0000000a 0x00000490 0x00000003 0x00000478 0x00000009 0x00000448\\n+ 0x00000005 0x00000470 0x00000007 0x00000480 0x00000006 0x00000468 0x00000004 0x00000460\\n+ 0x00000008 0x00000458 0x00000002 0x00000450 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc\\n+ 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004\\n+ 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 0xc0000001 0xc0210003 0x80000800 0x80200800\\n+ 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc\\n+ 0x641f0714 0x6ffc0000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed\\n+ 0x00000001 0x00000000 0x0000000a 0x00000658 0x00000003 0x00000688 0x00000009 0x00000680\\n+ 0x00000005 0x00000678 0x00000007 0x00000670 0x00000006 0x00000660 0x00000004 0x00000650\\n+ 0x00000008 0x00000668 0x00000002 0x00000640 0x0000000b 0x00000648 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0xedededed 0x0badbabe 0xedededed 0x00000000\\n\"}],[\"wire\",[120,-24,0,8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[48,-24,0,-8,0],{\"signal\":\"ia[11:2]\"}],[\"wire\",[48,-16,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[48,-8,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,0,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,16,0,-8,0],{\"signal\":\"ma[11:2]\"}],[\"wire\",[48,32,0,-8,0],{\"signal\":\"mwr\"}],[\"wire\",[48,40,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,56,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,40,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-160,24,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-160,8,0,-8,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-160,-8,0,-8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[-64,-8,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-64,8,0,8,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-64,24,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-64,40,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-64,56,0,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[48,24,0,-8,0],{\"signal\":\"moe\"}],[\"text\",[21,-81,0],{\"text\":\"The contents of main memory have\"}],[\"text\",[22,-70,0],{\"text\":\"been initialized with the binary for the\"}],[\"text\",[22,-59,0],{\"text\":\"Design Project test program.\"}],[\"/gates/tristate\",[136,48,3]],[\"wire\",[152,32,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[136,48,1,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[136,16,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[136,16,0,-16,0]],[\"/lab5/beta2\",[-128,40,0],{\"name\":\"beta2\"}]],\"test\":[[\"test\",\".power Vdd=1\\n.thresholds Vol=0 Vil=0.1 Vih=0.9 Voh=1\\n\\n.group inputs RESET\\n.mode gate\\n\\n.cycle CLK=1 tran 1n assert inputs tran 3.4n CLK=0 tran 4.4n\\n\\n1\\n.repeat 1140\\n0\\n\\n// Verify correct completion of benchmark -- DO NOT MODIFY!\\n.mverify Main 0x0 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 // Beta addr 0x0\\n.mverify Main 0x4 0x00000000 0x00000000 0x00000000 0x00000000 // Beta addr 0x10\\n.mverify Main 0x8 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 // Beta addr 0x20\\n.mverify Main 0xc 0x739f008e 0x739f00b1 0x739f0117 0x739f0129 // Beta addr 0x30\\n.mverify Main 0x10 0x739f0134 0x679f0718 0x73ffffff 0x0000071c // Beta addr 0x40\\n.mverify Main 0x14 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000 // Beta addr 0x50\\n.mverify Main 0x18 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 // Beta addr 0x60\\n.mverify Main 0x1c 0x67dc000c 0x10000000 0x67dc0010 0x14000000 // Beta addr 0x70\\n.mverify Main 0x20 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 // Beta addr 0x80\\n.mverify Main 0x24 0x67dc001c 0x20000000 0x67dc0020 0x24000000 // Beta addr 0x90\\n.mverify Main 0x28 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 // Beta addr 0xa0\\n.mverify Main 0x2c 0x67dc002c 0x30000000 0x67dc0030 0x34000000 // Beta addr 0xb0\\n.mverify Main 0x30 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 // Beta addr 0xc0\\n.mverify Main 0x34 0x67dc003c 0x40000000 0x67dc0040 0x44000000 // Beta addr 0xd0\\n.mverify Main 0x38 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 // Beta addr 0xe0\\n.mverify Main 0x3c 0x67dc004c 0x50000000 0x67dc0050 0x54000000 // Beta addr 0xf0\\n.mverify Main 0x40 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 // Beta addr 0x100\\n.mverify Main 0x44 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060 // Beta addr 0x110\\n.mverify Main 0x48 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 // Beta addr 0x120\\n.mverify Main 0x4c 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000 // Beta addr 0x130\\n.mverify Main 0x50 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 // Beta addr 0x140\\n.mverify Main 0x54 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800 // Beta addr 0x150\\n.mverify Main 0x58 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 // Beta addr 0x160\\n.mverify Main 0x5c 0x906db800 0x83c21800 0x67dc0090 0x944d6800 // Beta addr 0x170\\n.mverify Main 0x60 0x946db800 0x83c21800 0x67dc0094 0x984d6800 // Beta addr 0x180\\n.mverify Main 0x64 0x98776800 0x83c21800 0x67dc0098 0x9c000000 // Beta addr 0x190\\n.mverify Main 0x68 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 // Beta addr 0x1a0\\n.mverify Main 0x6c 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800 // Beta addr 0x1b0\\n.mverify Main 0x70 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 // Beta addr 0x1c0\\n.mverify Main 0x74 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8 // Beta addr 0x1d0\\n.mverify Main 0x78 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 // Beta addr 0x1e0\\n.mverify Main 0x7c 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0 // Beta addr 0x1f0\\n.mverify Main 0x80 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 // Beta addr 0x200\\n.mverify Main 0x84 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0 // Beta addr 0x210\\n.mverify Main 0x88 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 // Beta addr 0x220\\n.mverify Main 0x8c 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0 // Beta addr 0x230\\n.mverify Main 0x90 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 // Beta addr 0x240\\n.mverify Main 0x94 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc // Beta addr 0x250\\n.mverify Main 0x98 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 // Beta addr 0x260\\n.mverify Main 0x9c 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a // Beta addr 0x270\\n.mverify Main 0xa0 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 // Beta addr 0x280\\n.mverify Main 0xa4 0x739f0005 0x643f0634 0x641f0638 0x639dfffc // Beta addr 0x290\\n.mverify Main 0xa8 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 // Beta addr 0x2a0\\n.mverify Main 0xac 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000 // Beta addr 0x2b0\\n.mverify Main 0xb0 0x77e60003 0x84002000 0x80632800 0x73ff0002 // Beta addr 0x2c0\\n.mverify Main 0xb4 0x80002000 0x84632800 0xc4420001 0xd4c20000 // Beta addr 0x2d0\\n.mverify Main 0xb8 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 // Beta addr 0x2e0\\n.mverify Main 0xbc 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004 // Beta addr 0x2f0\\n.mverify Main 0xc0 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc // Beta addr 0x300\\n.mverify Main 0xc4 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc // Beta addr 0x310\\n.mverify Main 0xc8 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f // Beta addr 0x320\\n.mverify Main 0xcc 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc // Beta addr 0x330\\n.mverify Main 0xd0 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 // Beta addr 0x340\\n.mverify Main 0xd4 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc // Beta addr 0x350\\n.mverify Main 0xd8 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 // Beta addr 0x360\\n.mverify Main 0xdc 0x73e10005 0x60410004 0x64010004 0x8001f800 // Beta addr 0x370\\n.mverify Main 0xe0 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc // Beta addr 0x380\\n.mverify Main 0xe4 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc // Beta addr 0x390\\n.mverify Main 0xe8 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 // Beta addr 0x3a0\\n.mverify Main 0xec 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 // Beta addr 0x3b0\\n.mverify Main 0xf0 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc // Beta addr 0x3c0\\n.mverify Main 0xf4 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0 // Beta addr 0x3d0\\n.mverify Main 0xf8 0x77e00001 0x73e1000a 0x73e10007 0x60400000 // Beta addr 0x3e0\\n.mverify Main 0xfc 0x60610000 0x90421800 0x73e20003 0x60000004 // Beta addr 0x3f0\\n.mverify Main 0x100 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 // Beta addr 0x400\\n.mverify Main 0x104 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc // Beta addr 0x410\\n.mverify Main 0x108 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc // Beta addr 0x420\\n.mverify Main 0x10c 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x430\\n.mverify Main 0x110 0x00000001 0x00000488 0x0000000a 0x00000490 // Beta addr 0x440\\n.mverify Main 0x114 0x00000003 0x00000478 0x00000009 0x00000448 // Beta addr 0x450\\n.mverify Main 0x118 0x00000005 0x00000470 0x00000007 0x00000480 // Beta addr 0x460\\n.mverify Main 0x11c 0x00000006 0x00000468 0x00000004 0x00000460 // Beta addr 0x470\\n.mverify Main 0x120 0x00000008 0x00000458 0x00000002 0x00000450 // Beta addr 0x480\\n.mverify Main 0x124 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc // Beta addr 0x490\\n.mverify Main 0x128 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c // Beta addr 0x4a0\\n.mverify Main 0x12c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x4b0\\n.mverify Main 0x130 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x4c0\\n.mverify Main 0x134 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x4d0\\n.mverify Main 0x138 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 // Beta addr 0x4e0\\n.mverify Main 0x13c 0xc0000001 0xc0210003 0x80000800 0x80200800 // Beta addr 0x4f0\\n.mverify Main 0x140 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 // Beta addr 0x500\\n.mverify Main 0x144 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc // Beta addr 0x510\\n.mverify Main 0x148 0x641f0714 0x6ffc0000 0x00000000 0x80000060 // Beta addr 0x520\\n.mverify Main 0x14c 0x80000068 0x80000070 0x80000078 0x80000080 // Beta addr 0x530\\n.mverify Main 0x150 0x80000088 0x80000090 0x80000098 0x800000a0 // Beta addr 0x540\\n.mverify Main 0x154 0x800000a8 0x800000b0 0x800000b8 0x800000c0 // Beta addr 0x550\\n.mverify Main 0x158 0x800000c8 0x800000d0 0x800000d8 0x800000e0 // Beta addr 0x560\\n.mverify Main 0x15c 0x800000e8 0x800000f0 0x800000f8 0x80000100 // Beta addr 0x570\\n.mverify Main 0x160 0x80000108 0x80000110 0x73ff0008 0x00000000 // Beta addr 0x580\\n.mverify Main 0x164 0x80000124 0x00000134 0x00000140 0x00000148 // Beta addr 0x590\\n.mverify Main 0x168 0x00000154 0xdeadbeef 0x52acbef7 0x6aaebee7 // Beta addr 0x5a0\\n.mverify Main 0x16c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5b0\\n.mverify Main 0x170 0x00000001 0x000001a0 0x52ad0008 0xffffbeef // Beta addr 0x5c0\\n.mverify Main 0x174 0xad52bee7 0x52ad4118 0x3ff00080 0x073ff000 // Beta addr 0x5d0\\n.mverify Main 0x178 0x073ff000 0x000001e4 0x00000000 0xdeadbef0 // Beta addr 0x5e0\\n.mverify Main 0x17c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5f0\\n.mverify Main 0x180 0x00000001 0x00000214 0x00003644 0xffffffff // Beta addr 0x600\\n.mverify Main 0x184 0x21524110 0xdeadbeef 0x73ff0008 0x037ab6fb // Beta addr 0x610\\n.mverify Main 0x188 0xffbd5b7d 0x00000254 0xedededed 0x00001998 // Beta addr 0x620\\n.mverify Main 0x18c 0x00000001 0x00000367 0x00000000 0x00000001 // Beta addr 0x630\\n.mverify Main 0x190 0x00000001 0x00000688 0x0000000a 0x00000690 // Beta addr 0x640\\n.mverify Main 0x194 0x00000003 0x00000678 0x00000009 0x00000648 // Beta addr 0x650\\n.mverify Main 0x198 0x00000005 0x00000670 0x00000007 0x00000680 // Beta addr 0x660\\n.mverify Main 0x19c 0x00000006 0x00000668 0x00000004 0x00000660 // Beta addr 0x670\\n.mverify Main 0x1a0 0x00000008 0x00000658 0x00000002 0x00000650 // Beta addr 0x680\\n.mverify Main 0x1a4 0x0000000b 0x00000000 0x739f0000 0xc01f003c // Beta addr 0x690\\n.mverify Main 0x1a8 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x6a0\\n.mverify Main 0x1ac 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x6b0\\n.mverify Main 0x1b0 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x6c0\\n.mverify Main 0x1b4 0x6ffc0000 0x739f0000 0xc01f003c 0x80c7f800 // Beta addr 0x6d0\\n.mverify Main 0x1b8 0x603cfffc 0x64270000 0xc39c0004 0xc0e70004 // Beta addr 0x6e0\\n.mverify Main 0x1bc 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 // Beta addr 0x6f0\\n.mverify Main 0x1c0 0x6fe60000 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x700\\n.mverify Main 0x1c4 0x5d7bd920 0x00000044 0x00000044 // Beta addr 0x710\\n\\n.plotdef reg R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31\\n\\n.plotdef op ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? LD ST ??? JMP BEQ BNE ??? LDR ADD SUB MUL DIV CMPEQ CMPLT CMPLE ??? AND OR XOR XNOR SHL SHR SRA ??? ADDC SUBC MULC DIVC CMPEQC CMPLTC CMPLEC ??? ANDC ORC XORC XNORC SHLC SHRC SRAC ???\\n\\n.plot clk\\n.plot reset\\n.plot X(ia[31:0])\\n.plot X(id[31:0])\\n.plot op(id[31:26])\\n.plot reg(id[20:16])\\n.plot reg(id[15:11])\\n.plot reg(id[25:21])\\n.plot X(ma[31:0])\\n.plot moe\\n.plot X(mrd[31:0])\\n.plot mwr\\n.plot X(mwd[31:0])\\n\\n\"]]},\"/lab5/beta1\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"/lab5/ctl\",[-328,-200,0],{\"name\":\"ctl\"}],[\"wire\",[-384,-224,0,-8,0],{\"signal\":\"id[31:26]\"}],[\"wire\",[-384,-208,0,-8,0],{\"signal\":\"reset\"}],[\"/gates/and2\",[-448,-200,0]],[\"wire\",[-400,-192,0,16,0]],[\"wire\",[-448,-200,0,-8,0],{\"signal\":\"irq\"}],[\"/gates/inverter\",[-480,-184,0]],[\"wire\",[-480,-184,0,-8,0],{\"signal\":\"ia[31]\"}],[\"wire\",[-384,-176,0,-8,0],{\"signal\":\"Z\"}],[\"wire\",[-304,-224,0,8,0],{\"signal\":\"alufn[5:0]\"}],[\"wire\",[-304,-208,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-304,-192,0,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-304,-176,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-304,-160,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-304,-144,0,8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-304,-128,0,8,0],{\"signal\":\"ra2sel\"}],[\"wire\",[-304,-112,0,8,0],{\"signal\":\"wasel\"}],[\"wire\",[-304,-96,0,8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-304,-80,0,8,0],{\"signal\":\"werf\"}],[\"/lab5/pc\",[-392,-352,0],{\"name\":\"pc\"}],[\"wire\",[-400,-280,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-400,-296,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-400,-312,0,-8,0],{\"signal\":\"pcsel[2:0]\"}],[\"wire\",[-400,-328,0,-8,0],{\"signal\":\"jt[31:2]\"}],[\"wire\",[-400,-344,0,-8,0],{\"signal\":\"bid[15],id[14:0]\"}],[\"wire\",[-304,-328,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-304,-312,0,8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"wire\",[-304,-296,0,8,0],{\"signal\":\"pc_offset[31:0]\"}],[\"/lab5/regfile\",[-136,-288,0],{\"name\":\"regfile\"}],[\"wire\",[-160,-368,0,0,-8],{\"signal\":\"id[20:16]\"}],[\"wire\",[-96,-368,0,0,-8],{\"signal\":\"id[15:11]\"}],[\"wire\",[-200,-344,0,-8,0],{\"signal\":\"id[30]\"}],[\"wire\",[-200,-328,0,-8,0],{\"signal\":\"id[25:21]\"}],[\"wire\",[-200,-312,0,-8,0],{\"signal\":\"wasel\"}],[\"wire\",[-200,-296,0,-8,0],{\"signal\":\"werf\"}],[\"wire\",[-200,-280,0,-8,0],{\"signal\":\"clk\"}],[\"/lab3/alu\",[-128,-152,1]],[\"wire\",[-168,-160,0,-8,0],{\"signal\":\"alufn[5:0]\"}],[\"/gates/mux4\",[-96,-88,1]],[\"wire\",[-96,-88,0,0,-8]],[\"wire\",[-96,-96,0,8,0],{\"signal\":\"0'32\"}],[\"wire\",[-112,-88,0,0,-24]],[\"wire\",[-112,-112,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-88,-128,0,-40,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-128,-88,0,0,-40]],[\"wire\",[-128,-136,0,0,8]],[\"wire\",[-120,-72,0,0,8],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-56,-312,0,8,0],{\"signal\":\"wdata[31:0]\"}],[\"wire\",[-160,-80,0,-8,0],{\"signal\":\"wdsel[1:0]\"}],[\"wire\",[-144,-88,0,0,-8]],[\"wire\",[-144,-96,0,-8,0],{\"signal\":\"pc_inc[31:0]\"}],[\"/gates/mux2\",[-80,-240,1]],[\"/gates/mux2\",[-176,-224,7]],[\"wire\",[-144,-216,0,8,0],{\"signal\":\"asel\"}],[\"wire\",[-112,-232,4,8,0],{\"signal\":\"bsel\"}],[\"wire\",[-144,-184,0,-24,0]],[\"wire\",[-168,-184,0,0,-24],{\"width\":\"32\"}],[\"wire\",[-160,-224,0,0,-32],{\"signal\":\"jt[31:0]\"}],[\"wire\",[-176,-224,0,0,-8]],[\"wire\",[-176,-232,0,-8,0],{\"signal\":\"0'1,pc_offset[30:0]\"}],[\"wire\",[-112,-184,0,24,0]],[\"wire\",[-88,-184,0,0,-40],{\"width\":\"32\"}],[\"wire\",[-96,-240,0,0,-16],{\"signal\":\"mwd[31:0]\"}],[\"port\",[-80,-432,4],{\"signal\":\"Z\",\"direction\":\"out\"}],[\"/gates/nor4\",[-344,-456,0]],[\"/gates/nand4\",[-232,-456,0]],[\"/gates/nor2\",[-128,-440,0]],[\"wire\",[-128,-440,0,-8,0],{\"signal\":\"Y[1]\"}],[\"wire\",[-128,-424,0,-8,0],{\"signal\":\"Y[0]\"}],[\"wire\",[-184,-432,0,8,0],{\"signal\":\"Y[1:0]\"}],[\"wire\",[-232,-456,0,-8,0],{\"signal\":\"X[7:6]\"}],[\"wire\",[-232,-440,0,-8,0],{\"signal\":\"X[5:4]\"}],[\"wire\",[-232,-424,0,-8,0],{\"signal\":\"X[3:2]\"}],[\"wire\",[-232,-408,0,-8,0],{\"signal\":\"X[1:0]\"}],[\"wire\",[-296,-432,0,8,0],{\"signal\":\"X[7:0]\"}],[\"wire\",[-344,-456,0,-8,0],{\"signal\":\"JT[31:24]\"}],[\"wire\",[-344,-440,0,-8,0],{\"signal\":\"JT[23:16]\"}],[\"wire\",[-344,-424,0,-8,0],{\"signal\":\"JT[15:8]\"}],[\"wire\",[-344,-408,0,-8,0],{\"signal\":\"JT[7:0]\"}],[\"wire\",[-304,-344,0,8,0],{\"signal\":\"next_ia[31:0]\"}],[\"/gates/buffer\",[-272,-264,0]],[\"wire\",[-272,-264,0,-8,0],{\"signal\":\"id[15]\"}],[\"wire\",[-240,-264,0,8,0],{\"signal\":\"bid[15]\"}],[\"wire\",[-48,-240,0,-32,0],{\"signal\":\"bid[15]#17,id[14:0]\"}],[\"/gates/dreg\",[-280,-384,0]],[\"wire\",[-280,-368,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-280,-384,0,-8,0],{\"signal\":\"next_id[31:0]\"}],[\"wire\",[-240,-384,0,8,0],{\"signal\":\"id[31:0]\"}]],\"test\":[[\"test\",\"\"]],\"icon\":[[\"terminal\",[-32,16,0],{\"name\":\"clk\"}],[\"terminal\",[-32,0,0],{\"name\":\"reset\"}],[\"terminal\",[-32,-16,0],{\"name\":\"irq\"}],[\"terminal\",[-32,-32,0],{\"name\":\"mrd[31:0]\"}],[\"terminal\",[-32,-48,0],{\"name\":\"next_id[31:0]\"}],[\"text\",[-23,-48,0],{\"text\":\"ID[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,-32,0],{\"text\":\"MRD[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,-16,0],{\"text\":\"IRQ\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,0,0],{\"text\":\"RESET\",\"font\":\"4pt sans-serif\"}],[\"line\",[-16,16,0,-8,4]],[\"line\",[-16,16,0,-8,-4]],[\"terminal\",[64,-48,4],{\"name\":\"next_ia[31:0]\"}],[\"text\",[55,-48,4],{\"text\":\"IA[31:0]\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,-32,4],{\"name\":\"ma[31:0]\"}],[\"text\",[55,-32,4],{\"text\":\"MA[31:0]\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,-16,4],{\"name\":\"moe\"}],[\"text\",[55,-16,4],{\"text\":\"MOE\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,0,4],{\"name\":\"mwr\"}],[\"text\",[55,0,4],{\"text\":\"MWR\",\"font\":\"4pt sans-serif\"}],[\"terminal\",[64,16,4],{\"name\":\"mwd[31:0]\"}],[\"text\",[55,16,4],{\"text\":\"MWD[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[16,-59,0],{\"text\":\"BETA1\",\"font\":\"bold 6pt sans-serif\",\"align\":\"center\"}],[\"line\",[-24,-64,0,0,88]],[\"line\",[-24,24,0,80,0]],[\"line\",[56,24,0,0,-88]],[\"line\",[56,-64,0,-80,0]],[\"property\",[16,-66,0],{\"format\":\"{name}\",\"align\":\"bottom-center\"}]]},\"/project/test1\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"}},\"schematic\":[[\"memory\",[48,-24,0],{\"name\":\"Main\",\"nports\":\"2\",\"naddr\":\"10\",\"ndata\":\"32\",\"contents\":\"// Design project benchmark -- DO NOT MODIFY!\\n+ 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 0x739f008e 0x739f00b1 0x739f0117 0x739f0129\\n+ 0x739f0134 0x679f0718 0x73ffffff 0x0000071c 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000\\n+ 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 0x67dc000c 0x10000000 0x67dc0010 0x14000000\\n+ 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 0x67dc001c 0x20000000 0x67dc0020 0x24000000\\n+ 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 0x67dc002c 0x30000000 0x67dc0030 0x34000000\\n+ 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 0x67dc003c 0x40000000 0x67dc0040 0x44000000\\n+ 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 0x67dc004c 0x50000000 0x67dc0050 0x54000000\\n+ 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060\\n+ 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000\\n+ 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800\\n+ 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 0x906db800 0x83c21800 0x67dc0090 0x944d6800\\n+ 0x946db800 0x83c21800 0x67dc0094 0x984d6800 0x98776800 0x83c21800 0x67dc0098 0x9c000000\\n+ 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800\\n+ 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8\\n+ 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0\\n+ 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0\\n+ 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0\\n+ 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a\\n+ 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 0x739f0005 0x643f0634 0x641f0638 0x639dfffc\\n+ 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000\\n+ 0x77e60003 0x84002000 0x80632800 0x73ff0002 0x80002000 0x84632800 0xc4420001 0xd4c20000\\n+ 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004\\n+ 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc\\n+ 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc\\n+ 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 0x73e10005 0x60410004 0x64010004 0x8001f800\\n+ 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc\\n+ 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800\\n+ 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0\\n+ 0x77e00001 0x73e1000a 0x73e10007 0x60400000 0x60610000 0x90421800 0x73e20003 0x60000004\\n+ 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc\\n+ 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000\\n+ 0x00000001 0x00000488 0x0000000a 0x00000490 0x00000003 0x00000478 0x00000009 0x00000448\\n+ 0x00000005 0x00000470 0x00000007 0x00000480 0x00000006 0x00000468 0x00000004 0x00000460\\n+ 0x00000008 0x00000458 0x00000002 0x00000450 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc\\n+ 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004\\n+ 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc\\n+ 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 0xc0000001 0xc0210003 0x80000800 0x80200800\\n+ 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc\\n+ 0x641f0714 0x6ffc0000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed 0xedededed\\n+ 0x00000001 0x00000000 0x0000000a 0x00000658 0x00000003 0x00000688 0x00000009 0x00000680\\n+ 0x00000005 0x00000678 0x00000007 0x00000670 0x00000006 0x00000660 0x00000004 0x00000650\\n+ 0x00000008 0x00000668 0x00000002 0x00000640 0x0000000b 0x00000648 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000\\n+ 0x00000000 0x00000000 0x00000000 0x00000000 0xedededed 0x0badbabe 0xedededed 0x00000000\\n\"}],[\"wire\",[120,-24,0,8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[48,-24,0,-8,0],{\"signal\":\"ia[11:2]\"}],[\"wire\",[48,-16,0,-8,0],{\"signal\":\"1'1\"}],[\"wire\",[48,-8,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,0,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[48,16,0,-8,0],{\"signal\":\"ma[11:2]\"}],[\"wire\",[48,32,0,-8,0],{\"signal\":\"mwr\"}],[\"wire\",[48,40,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,56,0,-8,0],{\"signal\":\"clk\"}],[\"wire\",[-160,40,0,-8,0],{\"signal\":\"reset\"}],[\"wire\",[-160,24,0,-8,0],{\"signal\":\"0'1\"}],[\"wire\",[-160,8,0,-8,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[-160,-8,0,-8,0],{\"signal\":\"id[31:0]\"}],[\"wire\",[-64,-8,0,8,0],{\"signal\":\"ia[31:0]\"}],[\"wire\",[-64,8,0,8,0],{\"signal\":\"ma[31:0]\"}],[\"wire\",[-64,24,0,8,0],{\"signal\":\"moe\"}],[\"wire\",[-64,40,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[-64,56,0,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[48,24,0,-8,0],{\"signal\":\"moe\"}],[\"text\",[21,-81,0],{\"text\":\"The contents of main memory have\"}],[\"text\",[22,-70,0],{\"text\":\"been initialized with the binary for the\"}],[\"text\",[22,-59,0],{\"text\":\"Design Project test program.\"}],[\"/gates/tristate\",[136,48,3]],[\"wire\",[152,32,0,8,0],{\"signal\":\"mwr\"}],[\"wire\",[136,48,1,8,0],{\"signal\":\"mwd[31:0]\"}],[\"wire\",[136,16,0,24,0],{\"signal\":\"mrd[31:0]\"}],[\"wire\",[136,16,0,-16,0]],[\"/lab5/beta1\",[-128,40,0],{\"name\":\"beta\"}]],\"test\":[[\"test\",\".power Vdd=1\\n.thresholds Vol=0 Vil=0.1 Vih=0.9 Voh=1\\n\\n.group inputs RESET\\n.mode gate\\n\\n.cycle CLK=1 tran 1n assert inputs tran 3.4n CLK=0 tran 4.4n\\n\\n1\\n.repeat 1140\\n0\\n\\n// Verify correct completion of benchmark -- DO NOT MODIFY!\\n.mverify Main 0x0 0x73ff0008 0x6ffe0000 0x73ffffff 0x00000000 // Beta addr 0x0\\n.mverify Main 0x4 0x00000000 0x00000000 0x00000000 0x00000000 // Beta addr 0x10\\n.mverify Main 0x8 0x0000071c 0xc01f0000 0x7fbf0008 0x739f0008 // Beta addr 0x20\\n.mverify Main 0xc 0x739f008e 0x739f00b1 0x739f0117 0x739f0129 // Beta addr 0x30\\n.mverify Main 0x10 0x739f0134 0x679f0718 0x73ffffff 0x0000071c // Beta addr 0x40\\n.mverify Main 0x14 0xc3bd0004 0x679dfffc 0xc39f0528 0x04000000 // Beta addr 0x50\\n.mverify Main 0x18 0x67dc0004 0x08000000 0x67dc0008 0x0c000000 // Beta addr 0x60\\n.mverify Main 0x1c 0x67dc000c 0x10000000 0x67dc0010 0x14000000 // Beta addr 0x70\\n.mverify Main 0x20 0x67dc0014 0x18000000 0x67dc0018 0x1c000000 // Beta addr 0x80\\n.mverify Main 0x24 0x67dc001c 0x20000000 0x67dc0020 0x24000000 // Beta addr 0x90\\n.mverify Main 0x28 0x67dc0024 0x28000000 0x67dc0028 0x2c000000 // Beta addr 0xa0\\n.mverify Main 0x2c 0x67dc002c 0x30000000 0x67dc0030 0x34000000 // Beta addr 0xb0\\n.mverify Main 0x30 0x67dc0034 0x38000000 0x67dc0038 0x3c000000 // Beta addr 0xc0\\n.mverify Main 0x34 0x67dc003c 0x40000000 0x67dc0040 0x44000000 // Beta addr 0xd0\\n.mverify Main 0x38 0x67dc0044 0x48000000 0x67dc0048 0x4c000000 // Beta addr 0xe0\\n.mverify Main 0x3c 0x67dc004c 0x50000000 0x67dc0050 0x54000000 // Beta addr 0xf0\\n.mverify Main 0x40 0x67dc0054 0x58000000 0x67dc0058 0x5c000000 // Beta addr 0x100\\n.mverify Main 0x44 0x67dc005c 0xc01fffff 0x62e00001 0x66fc0060 // Beta addr 0x110\\n.mverify Main 0x48 0x68000000 0x67dc0068 0xc23f0134 0x6ff10000 // Beta addr 0x120\\n.mverify Main 0x4c 0x67df0628 0x663c006c 0x7dbf004b 0x73cd0000 // Beta addr 0x130\\n.mverify Main 0x50 0x67dc0070 0x77cd0001 0x679f0628 0x67dc0074 // Beta addr 0x140\\n.mverify Main 0x54 0x78000000 0x67dc0078 0x65bc007c 0x83cdb800 // Beta addr 0x150\\n.mverify Main 0x58 0x67dc0080 0x87cdb800 0x67dc0084 0x904d6800 // Beta addr 0x160\\n.mverify Main 0x5c 0x906db800 0x83c21800 0x67dc0090 0x944d6800 // Beta addr 0x170\\n.mverify Main 0x60 0x946db800 0x83c21800 0x67dc0094 0x984d6800 // Beta addr 0x180\\n.mverify Main 0x64 0x98776800 0x83c21800 0x67dc0098 0x9c000000 // Beta addr 0x190\\n.mverify Main 0x68 0x67dc009c 0xa3cdb800 0x67dc00a0 0xa7cdb800 // Beta addr 0x1a0\\n.mverify Main 0x6c 0x67dc00a4 0xabcdb800 0x67dc00a8 0xafcdb800 // Beta addr 0x1b0\\n.mverify Main 0x70 0x67dc00ac 0xc05f0004 0xb3d71000 0x67dc00b0 // Beta addr 0x1c0\\n.mverify Main 0x74 0xb7d71000 0x67dc00b4 0xbbd71000 0x67dc00b8 // Beta addr 0x1d0\\n.mverify Main 0x78 0xbc000000 0x67dc00bc 0xc3c00001 0x67dc00c0 // Beta addr 0x1e0\\n.mverify Main 0x7c 0xc7cdffff 0x67dc00c4 0xd3dc0528 0x67dc00d0 // Beta addr 0x1f0\\n.mverify Main 0x80 0xd7cd0000 0x67dc00d4 0xdbc0ffff 0x67dc00d8 // Beta addr 0x200\\n.mverify Main 0x84 0xdc000000 0x67dc00dc 0xe3cd7654 0x67dc00e0 // Beta addr 0x210\\n.mverify Main 0x88 0xe7cdffff 0x67dc00e4 0xebcdffff 0x67dc00e8 // Beta addr 0x220\\n.mverify Main 0x8c 0xedadffff 0x65bc00ec 0xf3d70020 0x67dc00f0 // Beta addr 0x230\\n.mverify Main 0x90 0xf7cd0006 0x67dc00f4 0xfbcd0007 0x67dc00f8 // Beta addr 0x240\\n.mverify Main 0x94 0xfc000000 0x67dc00fc 0x639dfffc 0xc3bdfffc // Beta addr 0x250\\n.mverify Main 0x98 0x6ffc0000 0xabadbabe 0xdeadbeef 0xc3bd0004 // Beta addr 0x260\\n.mverify Main 0x9c 0x679dfffc 0xc01f7ff9 0xc03f0005 0x739f000a // Beta addr 0x270\\n.mverify Main 0xa0 0x643f062c 0x641f0630 0xc01f7de3 0xc03f0025 // Beta addr 0x280\\n.mverify Main 0xa4 0x739f0005 0x643f0634 0x641f0638 0x639dfffc // Beta addr 0x290\\n.mverify Main 0xa8 0xc3bdfffc 0x6ffc0000 0xc05f0010 0xc07f0000 // Beta addr 0x2a0\\n.mverify Main 0xac 0xb0811000 0xc0bf0001 0xb0a51000 0xd4c00000 // Beta addr 0x2b0\\n.mverify Main 0xb0 0x77e60003 0x84002000 0x80632800 0x73ff0002 // Beta addr 0x2c0\\n.mverify Main 0xb4 0x80002000 0x84632800 0xc4420001 0xd4c20000 // Beta addr 0x2d0\\n.mverify Main 0xb8 0x73e6fff3 0xd4c00000 0x73e60002 0x80010000 // Beta addr 0x2e0\\n.mverify Main 0xbc 0xc4630001 0x8023f800 0x6ffc0000 0xc3bd0004 // Beta addr 0x2f0\\n.mverify Main 0xc0 0x679dfffc 0xc01f0690 0xc3bd0004 0x641dfffc // Beta addr 0x300\\n.mverify Main 0xc4 0x739f000c 0xc7bd0004 0xc3bd0004 0x641dfffc // Beta addr 0x310\\n.mverify Main 0xc8 0xc01f0440 0xc3bd0004 0x641dfffc 0x739f001f // Beta addr 0x320\\n.mverify Main 0xcc 0xc7bd0008 0x641f063c 0x639dfffc 0xc3bdfffc // Beta addr 0x330\\n.mverify Main 0xd0 0x6ffc0000 0xc3bd0004 0x679dfffc 0xc3bd0004 // Beta addr 0x340\\n.mverify Main 0xd4 0x677dfffc 0x837df800 0xc3bd0004 0x643dfffc // Beta addr 0x350\\n.mverify Main 0xd8 0xc3bd0004 0x645dfffc 0xc01f0000 0x603bfff4 // Beta addr 0x360\\n.mverify Main 0xdc 0x73e10005 0x60410004 0x64010004 0x8001f800 // Beta addr 0x370\\n.mverify Main 0xe0 0x8022f800 0x77e1fffb 0x605dfffc 0xc3bdfffc // Beta addr 0x380\\n.mverify Main 0xe4 0x603dfffc 0xc3bdfffc 0x637dfffc 0xc3bdfffc // Beta addr 0x390\\n.mverify Main 0xe8 0x639dfffc 0xc3bdfffc 0x6ffc0000 0xc3bd0004 // Beta addr 0x3a0\\n.mverify Main 0xec 0x679dfffc 0xc3bd0004 0x677dfffc 0x837df800 // Beta addr 0x3b0\\n.mverify Main 0xf0 0xc3bd0004 0x643dfffc 0xc3bd0004 0x645dfffc // Beta addr 0x3c0\\n.mverify Main 0xf4 0xc3bd0004 0x647dfffc 0x601bfff4 0x603bfff0 // Beta addr 0x3d0\\n.mverify Main 0xf8 0x77e00001 0x73e1000a 0x73e10007 0x60400000 // Beta addr 0x3e0\\n.mverify Main 0xfc 0x60610000 0x90421800 0x73e20003 0x60000004 // Beta addr 0x3f0\\n.mverify Main 0x100 0x60210004 0x73fffff6 0xc01f0000 0x73ff0001 // Beta addr 0x400\\n.mverify Main 0x104 0xc01f0001 0x607dfffc 0xc3bdfffc 0x605dfffc // Beta addr 0x410\\n.mverify Main 0x108 0xc3bdfffc 0x603dfffc 0xc3bdfffc 0x637dfffc // Beta addr 0x420\\n.mverify Main 0x10c 0xc3bdfffc 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x430\\n.mverify Main 0x110 0x00000001 0x00000488 0x0000000a 0x00000490 // Beta addr 0x440\\n.mverify Main 0x114 0x00000003 0x00000478 0x00000009 0x00000448 // Beta addr 0x450\\n.mverify Main 0x118 0x00000005 0x00000470 0x00000007 0x00000480 // Beta addr 0x460\\n.mverify Main 0x11c 0x00000006 0x00000468 0x00000004 0x00000460 // Beta addr 0x470\\n.mverify Main 0x120 0x00000008 0x00000458 0x00000002 0x00000450 // Beta addr 0x480\\n.mverify Main 0x124 0x0000000b 0x00000000 0xc3bd0004 0x679dfffc // Beta addr 0x490\\n.mverify Main 0x128 0xc05f0002 0xc0ff0698 0x739f0000 0xc01f003c // Beta addr 0x4a0\\n.mverify Main 0x12c 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x4b0\\n.mverify Main 0x130 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x4c0\\n.mverify Main 0x134 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x4d0\\n.mverify Main 0x138 0x6ffc0000 0xc01f0000 0xc03f0000 0xc05f0014 // Beta addr 0x4e0\\n.mverify Main 0x13c 0xc0000001 0xc0210003 0x80000800 0x80200800 // Beta addr 0x4f0\\n.mverify Main 0x140 0xc4420001 0x77e2fffa 0x80010000 0x641f0710 // Beta addr 0x500\\n.mverify Main 0x144 0x6ffc0000 0xc01f1000 0x6780fffc 0x6000fffc // Beta addr 0x510\\n.mverify Main 0x148 0x641f0714 0x6ffc0000 0x00000000 0x80000060 // Beta addr 0x520\\n.mverify Main 0x14c 0x80000068 0x80000070 0x80000078 0x80000080 // Beta addr 0x530\\n.mverify Main 0x150 0x80000088 0x80000090 0x80000098 0x800000a0 // Beta addr 0x540\\n.mverify Main 0x154 0x800000a8 0x800000b0 0x800000b8 0x800000c0 // Beta addr 0x550\\n.mverify Main 0x158 0x800000c8 0x800000d0 0x800000d8 0x800000e0 // Beta addr 0x560\\n.mverify Main 0x15c 0x800000e8 0x800000f0 0x800000f8 0x80000100 // Beta addr 0x570\\n.mverify Main 0x160 0x80000108 0x80000110 0x73ff0008 0x00000000 // Beta addr 0x580\\n.mverify Main 0x164 0x80000124 0x00000134 0x00000140 0x00000148 // Beta addr 0x590\\n.mverify Main 0x168 0x00000154 0xdeadbeef 0x52acbef7 0x6aaebee7 // Beta addr 0x5a0\\n.mverify Main 0x16c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5b0\\n.mverify Main 0x170 0x00000001 0x000001a0 0x52ad0008 0xffffbeef // Beta addr 0x5c0\\n.mverify Main 0x174 0xad52bee7 0x52ad4118 0x3ff00080 0x073ff000 // Beta addr 0x5d0\\n.mverify Main 0x178 0x073ff000 0x000001e4 0x00000000 0xdeadbef0 // Beta addr 0x5e0\\n.mverify Main 0x17c 0x00000000 0x00000000 0x00000001 0x00000001 // Beta addr 0x5f0\\n.mverify Main 0x180 0x00000001 0x00000214 0x00003644 0xffffffff // Beta addr 0x600\\n.mverify Main 0x184 0x21524110 0xdeadbeef 0x73ff0008 0x037ab6fb // Beta addr 0x610\\n.mverify Main 0x188 0xffbd5b7d 0x00000254 0xedededed 0x00001998 // Beta addr 0x620\\n.mverify Main 0x18c 0x00000001 0x00000367 0x00000000 0x00000001 // Beta addr 0x630\\n.mverify Main 0x190 0x00000001 0x00000688 0x0000000a 0x00000690 // Beta addr 0x640\\n.mverify Main 0x194 0x00000003 0x00000678 0x00000009 0x00000648 // Beta addr 0x650\\n.mverify Main 0x198 0x00000005 0x00000670 0x00000007 0x00000680 // Beta addr 0x660\\n.mverify Main 0x19c 0x00000006 0x00000668 0x00000004 0x00000660 // Beta addr 0x670\\n.mverify Main 0x1a0 0x00000008 0x00000658 0x00000002 0x00000650 // Beta addr 0x680\\n.mverify Main 0x1a4 0x0000000b 0x00000000 0x739f0000 0xc01f003c // Beta addr 0x690\\n.mverify Main 0x1a8 0x80c7f800 0x603cfffc 0x64270000 0xc39c0004 // Beta addr 0x6a0\\n.mverify Main 0x1ac 0xc0e70004 0xc4000004 0x77e0fffa 0xc4420001 // Beta addr 0x6b0\\n.mverify Main 0x1b0 0x73e20001 0x6fe60000 0x639dfffc 0xc3bdfffc // Beta addr 0x6c0\\n.mverify Main 0x1b4 0x6ffc0000 0x739f0000 0xc01f003c 0x80c7f800 // Beta addr 0x6d0\\n.mverify Main 0x1b8 0x603cfffc 0x64270000 0xc39c0004 0xc0e70004 // Beta addr 0x6e0\\n.mverify Main 0x1bc 0xc4000004 0x77e0fffa 0xc4420001 0x73e20001 // Beta addr 0x6f0\\n.mverify Main 0x1c0 0x6fe60000 0x639dfffc 0xc3bdfffc 0x6ffc0000 // Beta addr 0x700\\n.mverify Main 0x1c4 0x5d7bd920 0x00000044 0x00000044 // Beta addr 0x710\\n\\n.plotdef reg R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31\\n\\n.plotdef op ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? LD ST ??? JMP BEQ BNE ??? LDR ADD SUB MUL DIV CMPEQ CMPLT CMPLE ??? AND OR XOR XNOR SHL SHR SRA ??? ADDC SUBC MULC DIVC CMPEQC CMPLTC CMPLEC ??? ANDC ORC XORC XNORC SHLC SHRC SRAC ???\\n\\n.plot clk\\n.plot reset\\n.plot X(ia[31:0])\\n.plot X(id[31:0])\\n.plot op(id[31:26])\\n.plot reg(id[20:16])\\n.plot reg(id[15:11])\\n.plot reg(id[25:21])\\n.plot X(ma[31:0])\\n.plot moe\\n.plot X(mrd[31:0])\\n.plot mwr\\n.plot X(mwd[31:0])\\n\\n\"]]},\"/lab5/alu1\":{\"properties\":{\"name\":{\"label\":\"Name\",\"type\":\"string\",\"value\":\"\",\"edit\":\"yes\",\"choices\":[\"\"]}},\"schematic\":[[\"/lab3/bool\",[-32,-40,0],{\"name\":\"bool\"}],[\"/lab3/cmp\",[-32,88,0],{\"name\":\"cmp\"}],[\"wire\",[-64,96,0,-8,0],{\"signal\":\"FN[2:1]\"}],[\"wire\",[-64,-16,0,-8,0],{\"signal\":\"FN[3:0]\"}],[\"port\",[-128,-88,0],{\"signal\":\"A[31:0]\"}],[\"port\",[-128,-24,0],{\"signal\":\"B[31:0]\"}],[\"port\",[-128,48,0],{\"signal\":\"FN[5:0]\"}],[\"port\",[104,72,4],{\"signal\":\"Y[31:0]\",\"direction\":\"out\"}],[\"wire\",[-64,-72,0,-8,0],{\"signal\":\"FN[1:0]\"}],[\"/lab3/arith\",[-32,24,0],{\"name\":\"arith\"}],[\"wire\",[-64,40,0,-8,0],{\"signal\":\"FN[0]\"}],[\"wire\",[-120,24,0,56,0]],[\"wire\",[-64,-80,0,-8,0],{\"signal\":\"B[4:0]\"}],[\"wire\",[-64,-88,0,-56,0]],[\"/gates/mux4\",[88,48,0]],[\"wire\",[-120,-32,0,56,0]],[\"wire\",[96,112,0,0,8],{\"signal\":\"FN[5:4]\"}],[\"/lab3/shift\",[-32,-88,0],{\"name\":\"shift\"}],[\"wire\",[-48,64,0,0,8],{\"signal\":\"z\"}],[\"wire\",[-32,64,0,0,8],{\"signal\":\"v\"}],[\"wire\",[-16,64,0,0,8],{\"signal\":\"n\"}],[\"wire\",[-64,-24,0,-64,0]],[\"wire\",[-64,32,0,-64,0]],[\"wire\",[-128,-88,0,8,0]],[\"wire\",[0,-88,0,48,0]],[\"wire\",[0,24,0,8,0]],[\"wire\",[8,24,0,0,56]],[\"wire\",[0,-32,0,32,0]],[\"wire\",[-120,-32,0,0,56]],[\"wire\",[-120,-88,0,0,56]],[\"wire\",[-128,-24,0,0,56]],[\"wire\",[48,-88,0,0,136]],[\"wire\",[32,-32,0,0,96]],[\"wire\",[48,48,0,40,0],{\"signal\":\"shift[31:0]\"}],[\"wire\",[32,64,0,56,0],{\"signal\":\"bool[31:0]\"}],[\"wire\",[8,80,0,80,0],{\"signal\":\"arith[31:0]\"}],[\"wire\",[0,96,0,88,0],{\"signal\":\"cmp[31:0]\"}]],\"icon\":[[\"text\",[-8,-8,0],{\"text\":\"ALU\",\"font\":\"bold 6pt sans-serif\",\"align\":\"center\"}],[\"terminal\",[-32,-16,0],{\"name\":\"B[31:0]\"}],[\"terminal\",[-32,16,0],{\"name\":\"A[31:0]\"}],[\"terminal\",[-8,40,3],{\"name\":\"FN[5:0]\"}],[\"terminal\",[16,0,4],{\"name\":\"Y[31:0]\"}],[\"text\",[-23,16,0],{\"text\":\"A[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,-16,0],{\"text\":\"B[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[7,0,0],{\"text\":\"Y[31:0]\",\"font\":\"4pt sans-serif\",\"align\":\"center-right\"}],[\"text\",[-8,25,0],{\"text\":\"FN[5:0]\",\"font\":\"4pt sans-serif\",\"align\":\"bottom-center\"}],[\"line\",[-24,-3,0,4,3]],[\"line\",[-20,0,0,-4,3]],[\"line\",[-24,32,0,32,-12]],[\"line\",[8,-21,0,-32,-11]],[\"line\",[-24,-32,0,0,29]],[\"line\",[-24,3,0,0,29]],[\"line\",[8,-21,0,0,41]],[\"property\",[-8,-27,0],{\"format\":\"{name}\",\"align\":\"bottom-left\"}],[\"line\",[-8,32,0,0,-6]]],\"test\":[[\"test\",\".power Vdd=1\\n.thresholds Vol=0 Vil=0.1 Vih=0.9 Voh=1\\n\\n.group inputs FN[5:0] A[31:0] B[31:0]\\n.group outputs Y[31:0] Z V N\\n\\n.mode gate\\n\\n.cycle assert inputs tran 99n sample outputs tran 1n\\n\\n100000 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 1: fn=F0000, a=0xff00ff00, b=0xffff0000, y=0x00000000\\n100001 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLHHHHHHHH LLH // 2: fn=F0001, a=0xff00ff00, b=0xffff0000, y=0x000000ff\\n100010 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLHHHHHHHHLLLLLLLL LLH // 3: fn=F0010, a=0xff00ff00, b=0xffff0000, y=0x0000ff00\\n100011 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHH LLH // 4: fn=F0011, a=0xff00ff00, b=0xffff0000, y=0x0000ffff\\n100100 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHLLLLLLLLLLLLLLLL LLH // 5: fn=F0100, a=0xff00ff00, b=0xffff0000, y=0x00ff0000\\n100101 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHH LLH // 6: fn=F0101, a=0xff00ff00, b=0xffff0000, y=0x00ff00ff\\n100110 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHHHHHHHHHLLLLLLLL LLH // 7: fn= XOR, a=0xff00ff00, b=0xffff0000, y=0x00ffff00\\n100111 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHH LLH // 8: fn=F0111, a=0xff00ff00, b=0xffff0000, y=0x00ffffff\\n101000 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLL LLH // 9: fn= AND, a=0xff00ff00, b=0xffff0000, y=0xff000000\\n101001 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLLLLLLLLLHHHHHHHH LLH // 10: fn= XNOR, a=0xff00ff00, b=0xffff0000, y=0xff0000ff\\n101010 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLHHHHHHHHLLLLLLLL LLH // 11: fn= A, a=0xff00ff00, b=0xffff0000, y=0xff00ff00\\n101011 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLHHHHHHHHHHHHHHHH LLH // 12: fn=F1011, a=0xff00ff00, b=0xffff0000, y=0xff00ffff\\n101100 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLL LLH // 13: fn=F1100, a=0xff00ff00, b=0xffff0000, y=0xffff0000\\n101101 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHLLLLLLLLHHHHHHHH LLH // 14: fn=F1101, a=0xff00ff00, b=0xffff0000, y=0xffff00ff\\n101110 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLL LLH // 15: fn= OR, a=0xff00ff00, b=0xffff0000, y=0xffffff00\\n101111 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 16: fn=F1111, a=0xff00ff00, b=0xffff0000, y=0xffffffff\\n110000 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 17: fn= SHL, a=0x00000000, b=0x00000000, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 18: fn= SHR, a=0x00000000, b=0x00000000, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 19: fn= SRA, a=0x00000000, b=0x00000000, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 20: fn= SHL, a=0x00000000, b=0x00000001, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 21: fn= SHR, a=0x00000000, b=0x00000001, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 22: fn= SRA, a=0x00000000, b=0x00000001, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 23: fn= SHL, a=0x00000000, b=0x00000002, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 24: fn= SHR, a=0x00000000, b=0x00000002, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 25: fn= SRA, a=0x00000000, b=0x00000002, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 26: fn= SHL, a=0x00000000, b=0x00000004, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 27: fn= SHR, a=0x00000000, b=0x00000004, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 28: fn= SRA, a=0x00000000, b=0x00000004, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 29: fn= SHL, a=0x00000000, b=0x00000008, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 30: fn= SHR, a=0x00000000, b=0x00000008, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 31: fn= SRA, a=0x00000000, b=0x00000008, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 32: fn= SHL, a=0x00000000, b=0x00000010, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 33: fn= SHR, a=0x00000000, b=0x00000010, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 34: fn= SRA, a=0x00000000, b=0x00000010, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 35: fn= SHL, a=0x00000000, b=0x0000001f, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 36: fn= SHR, a=0x00000000, b=0x0000001f, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 37: fn= SRA, a=0x00000000, b=0x0000001f, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 38: fn= SHL, a=0x00000001, b=0x00000000, y=0x00000001\\n110001 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 39: fn= SHR, a=0x00000001, b=0x00000000, y=0x00000001\\n110011 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 40: fn= SRA, a=0x00000001, b=0x00000000, y=0x00000001\\n110000 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHL LLL // 41: fn= SHL, a=0x00000001, b=0x00000001, y=0x00000002\\n110001 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 42: fn= SHR, a=0x00000001, b=0x00000001, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 43: fn= SRA, a=0x00000001, b=0x00000001, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLHLL LLL // 44: fn= SHL, a=0x00000001, b=0x00000002, y=0x00000004\\n110001 00000000000000000000000000000001 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 45: fn= SHR, a=0x00000001, b=0x00000002, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 46: fn= SRA, a=0x00000001, b=0x00000002, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLHLLLL LLL // 47: fn= SHL, a=0x00000001, b=0x00000004, y=0x00000010\\n110001 00000000000000000000000000000001 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 48: fn= SHR, a=0x00000001, b=0x00000004, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 49: fn= SRA, a=0x00000001, b=0x00000004, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLHLLLLLLLL LLL // 50: fn= SHL, a=0x00000001, b=0x00000008, y=0x00000100\\n110001 00000000000000000000000000000001 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 51: fn= SHR, a=0x00000001, b=0x00000008, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 52: fn= SRA, a=0x00000001, b=0x00000008, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000010000 LLLLLLLLLLLLLLLHLLLLLLLLLLLLLLLL LLL // 53: fn= SHL, a=0x00000001, b=0x00000010, y=0x00010000\\n110001 00000000000000000000000000000001 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 54: fn= SHR, a=0x00000001, b=0x00000010, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 55: fn= SRA, a=0x00000001, b=0x00000010, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000011111 HLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 56: fn= SHL, a=0x00000001, b=0x0000001f, y=0x80000000\\n110001 00000000000000000000000000000001 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 57: fn= SHR, a=0x00000001, b=0x0000001f, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 58: fn= SRA, a=0x00000001, b=0x0000001f, y=0x00000000\\n110000 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 59: fn= SHL, a=0xffffffff, b=0x00000000, y=0xffffffff\\n110001 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 60: fn= SHR, a=0xffffffff, b=0x00000000, y=0xffffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 61: fn= SRA, a=0xffffffff, b=0x00000000, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL HLL // 62: fn= SHL, a=0xffffffff, b=0x00000001, y=0xfffffffe\\n110001 11111111111111111111111111111111 00000000000000000000000000000001 LHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 63: fn= SHR, a=0xffffffff, b=0x00000001, y=0x7fffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 64: fn= SRA, a=0xffffffff, b=0x00000001, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000000010 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLL LLL // 65: fn= SHL, a=0xffffffff, b=0x00000002, y=0xfffffffc\\n110001 11111111111111111111111111111111 00000000000000000000000000000010 LLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 66: fn= SHR, a=0xffffffff, b=0x00000002, y=0x3fffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000010 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 67: fn= SRA, a=0xffffffff, b=0x00000002, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000000100 HHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLL LLL // 68: fn= SHL, a=0xffffffff, b=0x00000004, y=0xfffffff0\\n110001 11111111111111111111111111111111 00000000000000000000000000000100 LLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 69: fn= SHR, a=0xffffffff, b=0x00000004, y=0x0fffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000100 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 70: fn= SRA, a=0xffffffff, b=0x00000004, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000001000 HHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLL LLL // 71: fn= SHL, a=0xffffffff, b=0x00000008, y=0xffffff00\\n110001 11111111111111111111111111111111 00000000000000000000000000001000 LLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHH LLH // 72: fn= SHR, a=0xffffffff, b=0x00000008, y=0x00ffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000001000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 73: fn= SRA, a=0xffffffff, b=0x00000008, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000010000 HHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLL LLL // 74: fn= SHL, a=0xffffffff, b=0x00000010, y=0xffff0000\\n110001 11111111111111111111111111111111 00000000000000000000000000010000 LLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHH LLH // 75: fn= SHR, a=0xffffffff, b=0x00000010, y=0x0000ffff\\n110011 11111111111111111111111111111111 00000000000000000000000000010000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 76: fn= SRA, a=0xffffffff, b=0x00000010, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000011111 HLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 77: fn= SHL, a=0xffffffff, b=0x0000001f, y=0x80000000\\n110001 11111111111111111111111111111111 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 78: fn= SHR, a=0xffffffff, b=0x0000001f, y=0x00000001\\n110011 11111111111111111111111111111111 00000000000000000000000000011111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 79: fn= SRA, a=0xffffffff, b=0x0000001f, y=0xffffffff\\n110000 00010010001101000101011001111000 00000000000000000000000000000000 LLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLL LLL // 80: fn= SHL, a=0x12345678, b=0x00000000, y=0x12345678\\n110001 00010010001101000101011001111000 00000000000000000000000000000000 LLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLL LLL // 81: fn= SHR, a=0x12345678, b=0x00000000, y=0x12345678\\n110011 00010010001101000101011001111000 00000000000000000000000000000000 LLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLL LLL // 82: fn= SRA, a=0x12345678, b=0x00000000, y=0x12345678\\n110000 00010010001101000101011001111000 00000000000000000000000000000001 LLHLLHLLLHHLHLLLHLHLHHLLHHHHLLLL LLL // 83: fn= SHL, a=0x12345678, b=0x00000001, y=0x2468acf0\\n110001 00010010001101000101011001111000 00000000000000000000000000000001 LLLLHLLHLLLHHLHLLLHLHLHHLLHHHHLL LLL // 84: fn= SHR, a=0x12345678, b=0x00000001, y=0x091a2b3c\\n110011 00010010001101000101011001111000 00000000000000000000000000000001 LLLLHLLHLLLHHLHLLLHLHLHHLLHHHHLL LLL // 85: fn= SRA, a=0x12345678, b=0x00000001, y=0x091a2b3c\\n110000 00010010001101000101011001111000 00000000000000000000000000000010 LHLLHLLLHHLHLLLHLHLHHLLHHHHLLLLL LLL // 86: fn= SHL, a=0x12345678, b=0x00000002, y=0x48d159e0\\n110001 00010010001101000101011001111000 00000000000000000000000000000010 LLLLLHLLHLLLHHLHLLLHLHLHHLLHHHHL LLL // 87: fn= SHR, a=0x12345678, b=0x00000002, y=0x048d159e\\n110011 00010010001101000101011001111000 00000000000000000000000000000010 LLLLLHLLHLLLHHLHLLLHLHLHHLLHHHHL LLL // 88: fn= SRA, a=0x12345678, b=0x00000002, y=0x048d159e\\n110000 00010010001101000101011001111000 00000000000000000000000000000100 LLHLLLHHLHLLLHLHLHHLLHHHHLLLLLLL LLL // 89: fn= SHL, a=0x12345678, b=0x00000004, y=0x23456780\\n110001 00010010001101000101011001111000 00000000000000000000000000000100 LLLLLLLHLLHLLLHHLHLLLHLHLHHLLHHH LLL // 90: fn= SHR, a=0x12345678, b=0x00000004, y=0x01234567\\n110011 00010010001101000101011001111000 00000000000000000000000000000100 LLLLLLLHLLHLLLHHLHLLLHLHLHHLLHHH LLL // 91: fn= SRA, a=0x12345678, b=0x00000004, y=0x01234567\\n110000 00010010001101000101011001111000 00000000000000000000000000001000 LLHHLHLLLHLHLHHLLHHHHLLLLLLLLLLL LLL // 92: fn= SHL, a=0x12345678, b=0x00000008, y=0x34567800\\n110001 00010010001101000101011001111000 00000000000000000000000000001000 LLLLLLLLLLLHLLHLLLHHLHLLLHLHLHHL LLL // 93: fn= SHR, a=0x12345678, b=0x00000008, y=0x00123456\\n110011 00010010001101000101011001111000 00000000000000000000000000001000 LLLLLLLLLLLHLLHLLLHHLHLLLHLHLHHL LLL // 94: fn= SRA, a=0x12345678, b=0x00000008, y=0x00123456\\n110000 00010010001101000101011001111000 00000000000000000000000000010000 LHLHLHHLLHHHHLLLLLLLLLLLLLLLLLLL LLL // 95: fn= SHL, a=0x12345678, b=0x00000010, y=0x56780000\\n110001 00010010001101000101011001111000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLHLLHLLLHHLHLL LLL // 96: fn= SHR, a=0x12345678, b=0x00000010, y=0x00001234\\n110011 00010010001101000101011001111000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLHLLHLLLHHLHLL LLL // 97: fn= SRA, a=0x12345678, b=0x00000010, y=0x00001234\\n110000 00010010001101000101011001111000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 98: fn= SHL, a=0x12345678, b=0x0000001f, y=0x00000000\\n110001 00010010001101000101011001111000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 99: fn= SHR, a=0x12345678, b=0x0000001f, y=0x00000000\\n110011 00010010001101000101011001111000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 100: fn= SRA, a=0x12345678, b=0x0000001f, y=0x00000000\\n110000 11111110110111001010101110011000 00000000000000000000000000000000 HHHHHHHLHHLHHHLLHLHLHLHHHLLHHLLL LLH // 101: fn= SHL, a=0xfedcab98, b=0x00000000, y=0xfedcab98\\n110001 11111110110111001010101110011000 00000000000000000000000000000000 HHHHHHHLHHLHHHLLHLHLHLHHHLLHHLLL LLH // 102: fn= SHR, a=0xfedcab98, b=0x00000000, y=0xfedcab98\\n110011 11111110110111001010101110011000 00000000000000000000000000000000 HHHHHHHLHHLHHHLLHLHLHLHHHLLHHLLL LLH // 103: fn= SRA, a=0xfedcab98, b=0x00000000, y=0xfedcab98\\n110000 11111110110111001010101110011000 00000000000000000000000000000001 HHHHHHLHHLHHHLLHLHLHLHHHLLHHLLLL LLH // 104: fn= SHL, a=0xfedcab98, b=0x00000001, y=0xfdb95730\\n110001 11111110110111001010101110011000 00000000000000000000000000000001 LHHHHHHHLHHLHHHLLHLHLHLHHHLLHHLL LLH // 105: fn= SHR, a=0xfedcab98, b=0x00000001, y=0x7f6e55cc\\n110011 11111110110111001010101110011000 00000000000000000000000000000001 HHHHHHHHLHHLHHHLLHLHLHLHHHLLHHLL LLH // 106: fn= SRA, a=0xfedcab98, b=0x00000001, y=0xff6e55cc\\n110000 11111110110111001010101110011000 00000000000000000000000000000010 HHHHHLHHLHHHLLHLHLHLHHHLLHHLLLLL LLH // 107: fn= SHL, a=0xfedcab98, b=0x00000002, y=0xfb72ae60\\n110001 11111110110111001010101110011000 00000000000000000000000000000010 LLHHHHHHHLHHLHHHLLHLHLHLHHHLLHHL LLH // 108: fn= SHR, a=0xfedcab98, b=0x00000002, y=0x3fb72ae6\\n110011 11111110110111001010101110011000 00000000000000000000000000000010 HHHHHHHHHLHHLHHHLLHLHLHLHHHLLHHL LLH // 109: fn= SRA, a=0xfedcab98, b=0x00000002, y=0xffb72ae6\\n110000 11111110110111001010101110011000 00000000000000000000000000000100 HHHLHHLHHHLLHLHLHLHHHLLHHLLLLLLL LLH // 110: fn= SHL, a=0xfedcab98, b=0x00000004, y=0xedcab980\\n110001 11111110110111001010101110011000 00000000000000000000000000000100 LLLLHHHHHHHLHHLHHHLLHLHLHLHHHLLH LLH // 111: fn= SHR, a=0xfedcab98, b=0x00000004, y=0x0fedcab9\\n110011 11111110110111001010101110011000 00000000000000000000000000000100 HHHHHHHHHHHLHHLHHHLLHLHLHLHHHLLH LLH // 112: fn= SRA, a=0xfedcab98, b=0x00000004, y=0xffedcab9\\n110000 11111110110111001010101110011000 00000000000000000000000000001000 HHLHHHLLHLHLHLHHHLLHHLLLLLLLLLLL LLH // 113: fn= SHL, a=0xfedcab98, b=0x00000008, y=0xdcab9800\\n110001 11111110110111001010101110011000 00000000000000000000000000001000 LLLLLLLLHHHHHHHLHHLHHHLLHLHLHLHH LLH // 114: fn= SHR, a=0xfedcab98, b=0x00000008, y=0x00fedcab\\n110011 11111110110111001010101110011000 00000000000000000000000000001000 HHHHHHHHHHHHHHHLHHLHHHLLHLHLHLHH LLH // 115: fn= SRA, a=0xfedcab98, b=0x00000008, y=0xfffedcab\\n110000 11111110110111001010101110011000 00000000000000000000000000010000 HLHLHLHHHLLHHLLLLLLLLLLLLLLLLLLL LLH // 116: fn= SHL, a=0xfedcab98, b=0x00000010, y=0xab980000\\n110001 11111110110111001010101110011000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLHHHHHHHLHHLHHHLL LLH // 117: fn= SHR, a=0xfedcab98, b=0x00000010, y=0x0000fedc\\n110011 11111110110111001010101110011000 00000000000000000000000000010000 HHHHHHHHHHHHHHHHHHHHHHHLHHLHHHLL LLH // 118: fn= SRA, a=0xfedcab98, b=0x00000010, y=0xfffffedc\\n110000 11111110110111001010101110011000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 119: fn= SHL, a=0xfedcab98, b=0x0000001f, y=0x00000000\\n110001 11111110110111001010101110011000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 120: fn= SHR, a=0xfedcab98, b=0x0000001f, y=0x00000001\\n110011 11111110110111001010101110011000 00000000000000000000000000011111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 121: fn= SRA, a=0xfedcab98, b=0x0000001f, y=0xffffffff\\n010000 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 122: fn= ADD, a=0x00000000, b=0x00000000, y=0x00000000\\n010000 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 123: fn= ADD, a=0x00000000, b=0x00000001, y=0x00000001\\n010000 00000000000000000000000000000000 11111111111111111111111111111111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 124: fn= ADD, a=0x00000000, b=0x-0000001, y=0xffffffff\\n010000 00000000000000000000000000000000 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 125: fn= ADD, a=0x00000000, b=0xaaaaaaaa, y=0xaaaaaaaa\\n010000 00000000000000000000000000000000 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 126: fn= ADD, a=0x00000000, b=0x55555555, y=0x55555555\\n010000 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 127: fn= ADD, a=0x00000001, b=0x00000000, y=0x00000001\\n010000 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHL LLL // 128: fn= ADD, a=0x00000001, b=0x00000001, y=0x00000002\\n010000 00000000000000000000000000000001 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 129: fn= ADD, a=0x00000001, b=0x-0000001, y=0x00000000\\n010000 00000000000000000000000000000001 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 130: fn= ADD, a=0x00000001, b=0xaaaaaaaa, y=0xaaaaaaab\\n010000 00000000000000000000000000000001 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 131: fn= ADD, a=0x00000001, b=0x55555555, y=0x55555556\\n010000 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 132: fn= ADD, a=0x-0000001, b=0x00000000, y=0xffffffff\\n010000 11111111111111111111111111111111 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 133: fn= ADD, a=0x-0000001, b=0x00000001, y=0x00000000\\n010000 11111111111111111111111111111111 11111111111111111111111111111111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL LLH // 134: fn= ADD, a=0x-0000001, b=0x-0000001, y=0xfffffffe\\n010000 11111111111111111111111111111111 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLLH LLH // 135: fn= ADD, a=0x-0000001, b=0xaaaaaaaa, y=0xaaaaaaa9\\n010000 11111111111111111111111111111111 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LLL // 136: fn= ADD, a=0x-0000001, b=0x55555555, y=0x55555554\\n010000 10101010101010101010101010101010 00000000000000000000000000000000 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 137: fn= ADD, a=0xaaaaaaaa, b=0x00000000, y=0xaaaaaaaa\\n010000 10101010101010101010101010101010 00000000000000000000000000000001 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 138: fn= ADD, a=0xaaaaaaaa, b=0x00000001, y=0xaaaaaaab\\n010000 10101010101010101010101010101010 11111111111111111111111111111111 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLLH LLH // 139: fn= ADD, a=0xaaaaaaaa, b=0x-0000001, y=0xaaaaaaa9\\n010000 10101010101010101010101010101010 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LHL // 140: fn= ADD, a=0xaaaaaaaa, b=0xaaaaaaaa, y=0x55555554\\n010000 10101010101010101010101010101010 01010101010101010101010101010101 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 141: fn= ADD, a=0xaaaaaaaa, b=0x55555555, y=0xffffffff\\n010000 01010101010101010101010101010101 00000000000000000000000000000000 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 142: fn= ADD, a=0x55555555, b=0x00000000, y=0x55555555\\n010000 01010101010101010101010101010101 00000000000000000000000000000001 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 143: fn= ADD, a=0x55555555, b=0x00000001, y=0x55555556\\n010000 01010101010101010101010101010101 11111111111111111111111111111111 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LLL // 144: fn= ADD, a=0x55555555, b=0x-0000001, y=0x55555554\\n010000 01010101010101010101010101010101 10101010101010101010101010101010 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 145: fn= ADD, a=0x55555555, b=0xaaaaaaaa, y=0xffffffff\\n010000 01010101010101010101010101010101 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LHH // 146: fn= ADD, a=0x55555555, b=0x55555555, y=0xaaaaaaaa\\n010001 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 147: fn= SUB, a=0x00000000, b=0x00000000, y=0x00000000\\n010001 00000000000000000000000000000000 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 148: fn= SUB, a=0x00000000, b=0x00000001, y=0xffffffff\\n010001 00000000000000000000000000000000 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 149: fn= SUB, a=0x00000000, b=0x-0000001, y=0x00000001\\n010001 00000000000000000000000000000000 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 150: fn= SUB, a=0x00000000, b=0xaaaaaaaa, y=0x55555556\\n010001 00000000000000000000000000000000 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 151: fn= SUB, a=0x00000000, b=0x55555555, y=0xaaaaaaab\\n010001 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 152: fn= SUB, a=0x00000001, b=0x00000000, y=0x00000001\\n010001 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 153: fn= SUB, a=0x00000001, b=0x00000001, y=0x00000000\\n010001 00000000000000000000000000000001 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHL LLL // 154: fn= SUB, a=0x00000001, b=0x-0000001, y=0x00000002\\n010001 00000000000000000000000000000001 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHH LLL // 155: fn= SUB, a=0x00000001, b=0xaaaaaaaa, y=0x55555557\\n010001 00000000000000000000000000000001 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHHLL LLH // 156: fn= SUB, a=0x00000001, b=0x55555555, y=0xaaaaaaac\\n010001 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 157: fn= SUB, a=0x-0000001, b=0x00000000, y=0xffffffff\\n010001 11111111111111111111111111111111 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL LLH // 158: fn= SUB, a=0x-0000001, b=0x00000001, y=0xfffffffe\\n010001 11111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 159: fn= SUB, a=0x-0000001, b=0x-0000001, y=0x00000000\\n010001 11111111111111111111111111111111 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 160: fn= SUB, a=0x-0000001, b=0xaaaaaaaa, y=0x55555555\\n010001 11111111111111111111111111111111 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 161: fn= SUB, a=0x-0000001, b=0x55555555, y=0xaaaaaaaa\\n010001 10101010101010101010101010101010 00000000000000000000000000000000 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 162: fn= SUB, a=0xaaaaaaaa, b=0x00000000, y=0xaaaaaaaa\\n010001 10101010101010101010101010101010 00000000000000000000000000000001 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLLH LLH // 163: fn= SUB, a=0xaaaaaaaa, b=0x00000001, y=0xaaaaaaa9\\n010001 10101010101010101010101010101010 11111111111111111111111111111111 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 164: fn= SUB, a=0xaaaaaaaa, b=0x-0000001, y=0xaaaaaaab\\n010001 10101010101010101010101010101010 10101010101010101010101010101010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 165: fn= SUB, a=0xaaaaaaaa, b=0xaaaaaaaa, y=0x00000000\\n010001 10101010101010101010101010101010 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LHL // 166: fn= SUB, a=0xaaaaaaaa, b=0x55555555, y=0x55555555\\n010001 01010101010101010101010101010101 00000000000000000000000000000000 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 167: fn= SUB, a=0x55555555, b=0x00000000, y=0x55555555\\n010001 01010101010101010101010101010101 00000000000000000000000000000001 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LLL // 168: fn= SUB, a=0x55555555, b=0x00000001, y=0x55555554\\n010001 01010101010101010101010101010101 11111111111111111111111111111111 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 169: fn= SUB, a=0x55555555, b=0x-0000001, y=0x55555556\\n010001 01010101010101010101010101010101 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LHH // 170: fn= SUB, a=0x55555555, b=0xaaaaaaaa, y=0xaaaaaaab\\n010001 01010101010101010101010101010101 01010101010101010101010101010101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 171: fn= SUB, a=0x55555555, b=0x55555555, y=0x00000000\\n000011 00000000000000000000000000000101 11011110101011011011111011101111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 172: fn=CMPEQ, a=0x00000005, b=0xdeadbeef, y=0x00000000\\n000101 00000000000000000000000000000101 11011110101011011011111011101111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 173: fn=CMPLT, a=0x00000005, b=0xdeadbeef, y=0x00000000\\n000111 00000000000000000000000000000101 11011110101011011011111011101111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 174: fn=CMPLE, a=0x00000005, b=0xdeadbeef, y=0x00000000\\n000011 00010010001101000101011001111000 00010010001101000101011001111000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH HLL // 175: fn=CMPEQ, a=0x12345678, b=0x12345678, y=0x00000001\\n000101 00010010001101000101011001111000 00010010001101000101011001111000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 176: fn=CMPLT, a=0x12345678, b=0x12345678, y=0x00000000\\n000111 00010010001101000101011001111000 00010010001101000101011001111000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH HLL // 177: fn=CMPLE, a=0x12345678, b=0x12345678, y=0x00000001\\n000011 10000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHL // 178: fn=CMPEQ, a=0x80000000, b=0x00000001, y=0x00000000\\n000101 10000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LHL // 179: fn=CMPLT, a=0x80000000, b=0x00000001, y=0x00000001\\n000111 10000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LHL // 180: fn=CMPLE, a=0x80000000, b=0x00000001, y=0x00000001\\n000011 11011110101011011011111011101111 00000000000000000000000000000101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 181: fn=CMPEQ, a=0xdeadbeef, b=0x00000005, y=0x00000000\\n000101 11011110101011011011111011101111 00000000000000000000000000000101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 182: fn=CMPLT, a=0xdeadbeef, b=0x00000005, y=0x00000001\\n000111 11011110101011011011111011101111 00000000000000000000000000000101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 183: fn=CMPLE, a=0xdeadbeef, b=0x00000005, y=0x00000001\\n000011 01111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHH // 184: fn=CMPEQ, a=0x7fffffff, b=0xffffffff, y=0x00000000\\n000101 01111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHH // 185: fn=CMPLT, a=0x7fffffff, b=0xffffffff, y=0x00000000\\n000111 01111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHH // 186: fn=CMPLE, a=0x7fffffff, b=0xffffffff, y=0x00000000\\n\\n// map FN[5:0] to text for operation\\n.plotdef op ? ? ? CMPEQ ? CMPLT ? CMPLE ? ? ? ? ? ? ? ? ADD SUB ? ? ? ? ? ? ? ? ? ? ? ? ? ? F0000 F0001 F0010 F0011 F0100 F0101 XOR F0111 AND XNOR A F1011 F1100 F1101 OR F1111 SHL SHR ? SRA ? ? ? ? ? ? ? ? ? ? ? ?\\n\\n.plot op(FN[5:0])\\n.plot X(A[31:0])\\n.plot X(B[31:0])\\n.plot X(Y[31:0])\\n.plot Z\\n.plot V\\n.plot N\"]]},\"/lab5/cla\":{\"properties\":{\"name\":{\"label\":\"Name\",\"type\":\"string\",\"value\":\"\",\"edit\":\"yes\",\"choices\":[\"\"]}},\"schematic\":[[\"port\",[-88,-48,0],{\"signal\":\"PL\"}],[\"port\",[-88,-32,0],{\"signal\":\"GL\"}],[\"port\",[-88,-16,0],{\"signal\":\"PH\"}],[\"port\",[-88,0,0],{\"signal\":\"GH\"}],[\"/gates/and2\",[8,-48,0]],[\"wire\",[8,-48,0,-8,0],{\"signal\":\"PL\"}],[\"wire\",[8,-32,0,-8,0],{\"signal\":\"PH\"}],[\"port\",[56,-40,4],{\"signal\":\"PHL\",\"direction\":\"out\"}],[\"/gates/nand2\",[8,-16,0]],[\"/gates/inverter\",[-24,-16,0]],[\"/gates/nand2\",[-40,0,0]],[\"wire\",[8,0,0,0,8]],[\"port\",[56,-8,4],{\"signal\":\"GHL\",\"direction\":\"out\"}],[\"wire\",[-40,0,0,-8,0],{\"signal\":\"PH\"}],[\"wire\",[-40,16,0,-8,0],{\"signal\":\"GL\"}],[\"wire\",[-24,-16,0,-24,0],{\"signal\":\"GH\"}],[\"port\",[-88,48,0],{\"signal\":\"CIN\"}],[\"/gates/nand2\",[8,64,0]],[\"/gates/inverter\",[-24,64,0]],[\"/gates/nand2\",[-40,80,0]],[\"wire\",[8,80,0,0,8]],[\"port\",[56,72,4],{\"signal\":\"CH\",\"direction\":\"out\"}],[\"wire\",[-40,80,0,-8,0],{\"signal\":\"PL\"}],[\"wire\",[-24,64,0,-24,0],{\"signal\":\"GL\"}],[\"port\",[56,48,4],{\"signal\":\"CL\",\"direction\":\"out\"}],[\"jumper\",[48,48,0]],[\"wire\",[-40,96,0,-40,0]],[\"wire\",[-80,96,0,0,-48]],[\"wire\",[48,48,0,-128,0]],[\"wire\",[-88,48,0,8,0]]],\"icon\":[[\"text\",[-8,-8,0],{\"text\":\"ALU\",\"font\":\"bold 6pt sans-serif\",\"align\":\"center\"}],[\"terminal\",[-32,-16,0],{\"name\":\"B[31:0]\"}],[\"terminal\",[-32,16,0],{\"name\":\"A[31:0]\"}],[\"terminal\",[-8,40,3],{\"name\":\"FN[5:0]\"}],[\"terminal\",[16,0,4],{\"name\":\"Y[31:0]\"}],[\"text\",[-23,16,0],{\"text\":\"A[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[-23,-16,0],{\"text\":\"B[31:0]\",\"font\":\"4pt sans-serif\"}],[\"text\",[7,0,0],{\"text\":\"Y[31:0]\",\"font\":\"4pt sans-serif\",\"align\":\"center-right\"}],[\"text\",[-8,25,0],{\"text\":\"FN[5:0]\",\"font\":\"4pt sans-serif\",\"align\":\"bottom-center\"}],[\"line\",[-24,-3,0,4,3]],[\"line\",[-20,0,0,-4,3]],[\"line\",[-24,32,0,32,-12]],[\"line\",[8,-21,0,-32,-11]],[\"line\",[-24,-32,0,0,29]],[\"line\",[-24,3,0,0,29]],[\"line\",[8,-21,0,0,41]],[\"property\",[-8,-27,0],{\"format\":\"{name}\",\"align\":\"bottom-left\"}],[\"line\",[-8,32,0,0,-6]]],\"test\":[[\"test\",\".power Vdd=1\\n.thresholds Vol=0 Vil=0.1 Vih=0.9 Voh=1\\n\\n.group inputs FN[5:0] A[31:0] B[31:0]\\n.group outputs Y[31:0] Z V N\\n\\n.mode gate\\n\\n.cycle assert inputs tran 99n sample outputs tran 1n\\n\\n100000 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 1: fn=F0000, a=0xff00ff00, b=0xffff0000, y=0x00000000\\n100001 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLHHHHHHHH LLH // 2: fn=F0001, a=0xff00ff00, b=0xffff0000, y=0x000000ff\\n100010 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLHHHHHHHHLLLLLLLL LLH // 3: fn=F0010, a=0xff00ff00, b=0xffff0000, y=0x0000ff00\\n100011 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHH LLH // 4: fn=F0011, a=0xff00ff00, b=0xffff0000, y=0x0000ffff\\n100100 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHLLLLLLLLLLLLLLLL LLH // 5: fn=F0100, a=0xff00ff00, b=0xffff0000, y=0x00ff0000\\n100101 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHH LLH // 6: fn=F0101, a=0xff00ff00, b=0xffff0000, y=0x00ff00ff\\n100110 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHHHHHHHHHLLLLLLLL LLH // 7: fn= XOR, a=0xff00ff00, b=0xffff0000, y=0x00ffff00\\n100111 11111111000000001111111100000000 11111111111111110000000000000000 LLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHH LLH // 8: fn=F0111, a=0xff00ff00, b=0xffff0000, y=0x00ffffff\\n101000 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLL LLH // 9: fn= AND, a=0xff00ff00, b=0xffff0000, y=0xff000000\\n101001 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLLLLLLLLLHHHHHHHH LLH // 10: fn= XNOR, a=0xff00ff00, b=0xffff0000, y=0xff0000ff\\n101010 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLHHHHHHHHLLLLLLLL LLH // 11: fn= A, a=0xff00ff00, b=0xffff0000, y=0xff00ff00\\n101011 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHLLLLLLLLHHHHHHHHHHHHHHHH LLH // 12: fn=F1011, a=0xff00ff00, b=0xffff0000, y=0xff00ffff\\n101100 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLL LLH // 13: fn=F1100, a=0xff00ff00, b=0xffff0000, y=0xffff0000\\n101101 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHLLLLLLLLHHHHHHHH LLH // 14: fn=F1101, a=0xff00ff00, b=0xffff0000, y=0xffff00ff\\n101110 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLL LLH // 15: fn= OR, a=0xff00ff00, b=0xffff0000, y=0xffffff00\\n101111 11111111000000001111111100000000 11111111111111110000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 16: fn=F1111, a=0xff00ff00, b=0xffff0000, y=0xffffffff\\n110000 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 17: fn= SHL, a=0x00000000, b=0x00000000, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 18: fn= SHR, a=0x00000000, b=0x00000000, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 19: fn= SRA, a=0x00000000, b=0x00000000, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 20: fn= SHL, a=0x00000000, b=0x00000001, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 21: fn= SHR, a=0x00000000, b=0x00000001, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 22: fn= SRA, a=0x00000000, b=0x00000001, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 23: fn= SHL, a=0x00000000, b=0x00000002, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 24: fn= SHR, a=0x00000000, b=0x00000002, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 25: fn= SRA, a=0x00000000, b=0x00000002, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 26: fn= SHL, a=0x00000000, b=0x00000004, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 27: fn= SHR, a=0x00000000, b=0x00000004, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 28: fn= SRA, a=0x00000000, b=0x00000004, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 29: fn= SHL, a=0x00000000, b=0x00000008, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 30: fn= SHR, a=0x00000000, b=0x00000008, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 31: fn= SRA, a=0x00000000, b=0x00000008, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 32: fn= SHL, a=0x00000000, b=0x00000010, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 33: fn= SHR, a=0x00000000, b=0x00000010, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 34: fn= SRA, a=0x00000000, b=0x00000010, y=0x00000000\\n110000 00000000000000000000000000000000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 35: fn= SHL, a=0x00000000, b=0x0000001f, y=0x00000000\\n110001 00000000000000000000000000000000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 36: fn= SHR, a=0x00000000, b=0x0000001f, y=0x00000000\\n110011 00000000000000000000000000000000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 37: fn= SRA, a=0x00000000, b=0x0000001f, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 38: fn= SHL, a=0x00000001, b=0x00000000, y=0x00000001\\n110001 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 39: fn= SHR, a=0x00000001, b=0x00000000, y=0x00000001\\n110011 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 40: fn= SRA, a=0x00000001, b=0x00000000, y=0x00000001\\n110000 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHL LLL // 41: fn= SHL, a=0x00000001, b=0x00000001, y=0x00000002\\n110001 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 42: fn= SHR, a=0x00000001, b=0x00000001, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 43: fn= SRA, a=0x00000001, b=0x00000001, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLHLL LLL // 44: fn= SHL, a=0x00000001, b=0x00000002, y=0x00000004\\n110001 00000000000000000000000000000001 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 45: fn= SHR, a=0x00000001, b=0x00000002, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000000010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 46: fn= SRA, a=0x00000001, b=0x00000002, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLHLLLL LLL // 47: fn= SHL, a=0x00000001, b=0x00000004, y=0x00000010\\n110001 00000000000000000000000000000001 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 48: fn= SHR, a=0x00000001, b=0x00000004, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000000100 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 49: fn= SRA, a=0x00000001, b=0x00000004, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLHLLLLLLLL LLL // 50: fn= SHL, a=0x00000001, b=0x00000008, y=0x00000100\\n110001 00000000000000000000000000000001 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 51: fn= SHR, a=0x00000001, b=0x00000008, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000001000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 52: fn= SRA, a=0x00000001, b=0x00000008, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000010000 LLLLLLLLLLLLLLLHLLLLLLLLLLLLLLLL LLL // 53: fn= SHL, a=0x00000001, b=0x00000010, y=0x00010000\\n110001 00000000000000000000000000000001 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 54: fn= SHR, a=0x00000001, b=0x00000010, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 55: fn= SRA, a=0x00000001, b=0x00000010, y=0x00000000\\n110000 00000000000000000000000000000001 00000000000000000000000000011111 HLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 56: fn= SHL, a=0x00000001, b=0x0000001f, y=0x80000000\\n110001 00000000000000000000000000000001 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 57: fn= SHR, a=0x00000001, b=0x0000001f, y=0x00000000\\n110011 00000000000000000000000000000001 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 58: fn= SRA, a=0x00000001, b=0x0000001f, y=0x00000000\\n110000 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 59: fn= SHL, a=0xffffffff, b=0x00000000, y=0xffffffff\\n110001 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 60: fn= SHR, a=0xffffffff, b=0x00000000, y=0xffffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 61: fn= SRA, a=0xffffffff, b=0x00000000, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL HLL // 62: fn= SHL, a=0xffffffff, b=0x00000001, y=0xfffffffe\\n110001 11111111111111111111111111111111 00000000000000000000000000000001 LHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 63: fn= SHR, a=0xffffffff, b=0x00000001, y=0x7fffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 64: fn= SRA, a=0xffffffff, b=0x00000001, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000000010 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLL LLL // 65: fn= SHL, a=0xffffffff, b=0x00000002, y=0xfffffffc\\n110001 11111111111111111111111111111111 00000000000000000000000000000010 LLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 66: fn= SHR, a=0xffffffff, b=0x00000002, y=0x3fffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000010 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 67: fn= SRA, a=0xffffffff, b=0x00000002, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000000100 HHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLL LLL // 68: fn= SHL, a=0xffffffff, b=0x00000004, y=0xfffffff0\\n110001 11111111111111111111111111111111 00000000000000000000000000000100 LLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 69: fn= SHR, a=0xffffffff, b=0x00000004, y=0x0fffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000000100 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 70: fn= SRA, a=0xffffffff, b=0x00000004, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000001000 HHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLL LLL // 71: fn= SHL, a=0xffffffff, b=0x00000008, y=0xffffff00\\n110001 11111111111111111111111111111111 00000000000000000000000000001000 LLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHH LLH // 72: fn= SHR, a=0xffffffff, b=0x00000008, y=0x00ffffff\\n110011 11111111111111111111111111111111 00000000000000000000000000001000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 73: fn= SRA, a=0xffffffff, b=0x00000008, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000010000 HHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLL LLL // 74: fn= SHL, a=0xffffffff, b=0x00000010, y=0xffff0000\\n110001 11111111111111111111111111111111 00000000000000000000000000010000 LLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHH LLH // 75: fn= SHR, a=0xffffffff, b=0x00000010, y=0x0000ffff\\n110011 11111111111111111111111111111111 00000000000000000000000000010000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 76: fn= SRA, a=0xffffffff, b=0x00000010, y=0xffffffff\\n110000 11111111111111111111111111111111 00000000000000000000000000011111 HLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 77: fn= SHL, a=0xffffffff, b=0x0000001f, y=0x80000000\\n110001 11111111111111111111111111111111 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 78: fn= SHR, a=0xffffffff, b=0x0000001f, y=0x00000001\\n110011 11111111111111111111111111111111 00000000000000000000000000011111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 79: fn= SRA, a=0xffffffff, b=0x0000001f, y=0xffffffff\\n110000 00010010001101000101011001111000 00000000000000000000000000000000 LLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLL LLL // 80: fn= SHL, a=0x12345678, b=0x00000000, y=0x12345678\\n110001 00010010001101000101011001111000 00000000000000000000000000000000 LLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLL LLL // 81: fn= SHR, a=0x12345678, b=0x00000000, y=0x12345678\\n110011 00010010001101000101011001111000 00000000000000000000000000000000 LLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLL LLL // 82: fn= SRA, a=0x12345678, b=0x00000000, y=0x12345678\\n110000 00010010001101000101011001111000 00000000000000000000000000000001 LLHLLHLLLHHLHLLLHLHLHHLLHHHHLLLL LLL // 83: fn= SHL, a=0x12345678, b=0x00000001, y=0x2468acf0\\n110001 00010010001101000101011001111000 00000000000000000000000000000001 LLLLHLLHLLLHHLHLLLHLHLHHLLHHHHLL LLL // 84: fn= SHR, a=0x12345678, b=0x00000001, y=0x091a2b3c\\n110011 00010010001101000101011001111000 00000000000000000000000000000001 LLLLHLLHLLLHHLHLLLHLHLHHLLHHHHLL LLL // 85: fn= SRA, a=0x12345678, b=0x00000001, y=0x091a2b3c\\n110000 00010010001101000101011001111000 00000000000000000000000000000010 LHLLHLLLHHLHLLLHLHLHHLLHHHHLLLLL LLL // 86: fn= SHL, a=0x12345678, b=0x00000002, y=0x48d159e0\\n110001 00010010001101000101011001111000 00000000000000000000000000000010 LLLLLHLLHLLLHHLHLLLHLHLHHLLHHHHL LLL // 87: fn= SHR, a=0x12345678, b=0x00000002, y=0x048d159e\\n110011 00010010001101000101011001111000 00000000000000000000000000000010 LLLLLHLLHLLLHHLHLLLHLHLHHLLHHHHL LLL // 88: fn= SRA, a=0x12345678, b=0x00000002, y=0x048d159e\\n110000 00010010001101000101011001111000 00000000000000000000000000000100 LLHLLLHHLHLLLHLHLHHLLHHHHLLLLLLL LLL // 89: fn= SHL, a=0x12345678, b=0x00000004, y=0x23456780\\n110001 00010010001101000101011001111000 00000000000000000000000000000100 LLLLLLLHLLHLLLHHLHLLLHLHLHHLLHHH LLL // 90: fn= SHR, a=0x12345678, b=0x00000004, y=0x01234567\\n110011 00010010001101000101011001111000 00000000000000000000000000000100 LLLLLLLHLLHLLLHHLHLLLHLHLHHLLHHH LLL // 91: fn= SRA, a=0x12345678, b=0x00000004, y=0x01234567\\n110000 00010010001101000101011001111000 00000000000000000000000000001000 LLHHLHLLLHLHLHHLLHHHHLLLLLLLLLLL LLL // 92: fn= SHL, a=0x12345678, b=0x00000008, y=0x34567800\\n110001 00010010001101000101011001111000 00000000000000000000000000001000 LLLLLLLLLLLHLLHLLLHHLHLLLHLHLHHL LLL // 93: fn= SHR, a=0x12345678, b=0x00000008, y=0x00123456\\n110011 00010010001101000101011001111000 00000000000000000000000000001000 LLLLLLLLLLLHLLHLLLHHLHLLLHLHLHHL LLL // 94: fn= SRA, a=0x12345678, b=0x00000008, y=0x00123456\\n110000 00010010001101000101011001111000 00000000000000000000000000010000 LHLHLHHLLHHHHLLLLLLLLLLLLLLLLLLL LLL // 95: fn= SHL, a=0x12345678, b=0x00000010, y=0x56780000\\n110001 00010010001101000101011001111000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLHLLHLLLHHLHLL LLL // 96: fn= SHR, a=0x12345678, b=0x00000010, y=0x00001234\\n110011 00010010001101000101011001111000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLLLLHLLHLLLHHLHLL LLL // 97: fn= SRA, a=0x12345678, b=0x00000010, y=0x00001234\\n110000 00010010001101000101011001111000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 98: fn= SHL, a=0x12345678, b=0x0000001f, y=0x00000000\\n110001 00010010001101000101011001111000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 99: fn= SHR, a=0x12345678, b=0x0000001f, y=0x00000000\\n110011 00010010001101000101011001111000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 100: fn= SRA, a=0x12345678, b=0x0000001f, y=0x00000000\\n110000 11111110110111001010101110011000 00000000000000000000000000000000 HHHHHHHLHHLHHHLLHLHLHLHHHLLHHLLL LLH // 101: fn= SHL, a=0xfedcab98, b=0x00000000, y=0xfedcab98\\n110001 11111110110111001010101110011000 00000000000000000000000000000000 HHHHHHHLHHLHHHLLHLHLHLHHHLLHHLLL LLH // 102: fn= SHR, a=0xfedcab98, b=0x00000000, y=0xfedcab98\\n110011 11111110110111001010101110011000 00000000000000000000000000000000 HHHHHHHLHHLHHHLLHLHLHLHHHLLHHLLL LLH // 103: fn= SRA, a=0xfedcab98, b=0x00000000, y=0xfedcab98\\n110000 11111110110111001010101110011000 00000000000000000000000000000001 HHHHHHLHHLHHHLLHLHLHLHHHLLHHLLLL LLH // 104: fn= SHL, a=0xfedcab98, b=0x00000001, y=0xfdb95730\\n110001 11111110110111001010101110011000 00000000000000000000000000000001 LHHHHHHHLHHLHHHLLHLHLHLHHHLLHHLL LLH // 105: fn= SHR, a=0xfedcab98, b=0x00000001, y=0x7f6e55cc\\n110011 11111110110111001010101110011000 00000000000000000000000000000001 HHHHHHHHLHHLHHHLLHLHLHLHHHLLHHLL LLH // 106: fn= SRA, a=0xfedcab98, b=0x00000001, y=0xff6e55cc\\n110000 11111110110111001010101110011000 00000000000000000000000000000010 HHHHHLHHLHHHLLHLHLHLHHHLLHHLLLLL LLH // 107: fn= SHL, a=0xfedcab98, b=0x00000002, y=0xfb72ae60\\n110001 11111110110111001010101110011000 00000000000000000000000000000010 LLHHHHHHHLHHLHHHLLHLHLHLHHHLLHHL LLH // 108: fn= SHR, a=0xfedcab98, b=0x00000002, y=0x3fb72ae6\\n110011 11111110110111001010101110011000 00000000000000000000000000000010 HHHHHHHHHLHHLHHHLLHLHLHLHHHLLHHL LLH // 109: fn= SRA, a=0xfedcab98, b=0x00000002, y=0xffb72ae6\\n110000 11111110110111001010101110011000 00000000000000000000000000000100 HHHLHHLHHHLLHLHLHLHHHLLHHLLLLLLL LLH // 110: fn= SHL, a=0xfedcab98, b=0x00000004, y=0xedcab980\\n110001 11111110110111001010101110011000 00000000000000000000000000000100 LLLLHHHHHHHLHHLHHHLLHLHLHLHHHLLH LLH // 111: fn= SHR, a=0xfedcab98, b=0x00000004, y=0x0fedcab9\\n110011 11111110110111001010101110011000 00000000000000000000000000000100 HHHHHHHHHHHLHHLHHHLLHLHLHLHHHLLH LLH // 112: fn= SRA, a=0xfedcab98, b=0x00000004, y=0xffedcab9\\n110000 11111110110111001010101110011000 00000000000000000000000000001000 HHLHHHLLHLHLHLHHHLLHHLLLLLLLLLLL LLH // 113: fn= SHL, a=0xfedcab98, b=0x00000008, y=0xdcab9800\\n110001 11111110110111001010101110011000 00000000000000000000000000001000 LLLLLLLLHHHHHHHLHHLHHHLLHLHLHLHH LLH // 114: fn= SHR, a=0xfedcab98, b=0x00000008, y=0x00fedcab\\n110011 11111110110111001010101110011000 00000000000000000000000000001000 HHHHHHHHHHHHHHHLHHLHHHLLHLHLHLHH LLH // 115: fn= SRA, a=0xfedcab98, b=0x00000008, y=0xfffedcab\\n110000 11111110110111001010101110011000 00000000000000000000000000010000 HLHLHLHHHLLHHLLLLLLLLLLLLLLLLLLL LLH // 116: fn= SHL, a=0xfedcab98, b=0x00000010, y=0xab980000\\n110001 11111110110111001010101110011000 00000000000000000000000000010000 LLLLLLLLLLLLLLLLHHHHHHHLHHLHHHLL LLH // 117: fn= SHR, a=0xfedcab98, b=0x00000010, y=0x0000fedc\\n110011 11111110110111001010101110011000 00000000000000000000000000010000 HHHHHHHHHHHHHHHHHHHHHHHLHHLHHHLL LLH // 118: fn= SRA, a=0xfedcab98, b=0x00000010, y=0xfffffedc\\n110000 11111110110111001010101110011000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 119: fn= SHL, a=0xfedcab98, b=0x0000001f, y=0x00000000\\n110001 11111110110111001010101110011000 00000000000000000000000000011111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 120: fn= SHR, a=0xfedcab98, b=0x0000001f, y=0x00000001\\n110011 11111110110111001010101110011000 00000000000000000000000000011111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 121: fn= SRA, a=0xfedcab98, b=0x0000001f, y=0xffffffff\\n010000 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 122: fn= ADD, a=0x00000000, b=0x00000000, y=0x00000000\\n010000 00000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 123: fn= ADD, a=0x00000000, b=0x00000001, y=0x00000001\\n010000 00000000000000000000000000000000 11111111111111111111111111111111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 124: fn= ADD, a=0x00000000, b=0x-0000001, y=0xffffffff\\n010000 00000000000000000000000000000000 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 125: fn= ADD, a=0x00000000, b=0xaaaaaaaa, y=0xaaaaaaaa\\n010000 00000000000000000000000000000000 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 126: fn= ADD, a=0x00000000, b=0x55555555, y=0x55555555\\n010000 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 127: fn= ADD, a=0x00000001, b=0x00000000, y=0x00000001\\n010000 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHL LLL // 128: fn= ADD, a=0x00000001, b=0x00000001, y=0x00000002\\n010000 00000000000000000000000000000001 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 129: fn= ADD, a=0x00000001, b=0x-0000001, y=0x00000000\\n010000 00000000000000000000000000000001 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 130: fn= ADD, a=0x00000001, b=0xaaaaaaaa, y=0xaaaaaaab\\n010000 00000000000000000000000000000001 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 131: fn= ADD, a=0x00000001, b=0x55555555, y=0x55555556\\n010000 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 132: fn= ADD, a=0x-0000001, b=0x00000000, y=0xffffffff\\n010000 11111111111111111111111111111111 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 133: fn= ADD, a=0x-0000001, b=0x00000001, y=0x00000000\\n010000 11111111111111111111111111111111 11111111111111111111111111111111 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL LLH // 134: fn= ADD, a=0x-0000001, b=0x-0000001, y=0xfffffffe\\n010000 11111111111111111111111111111111 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLLH LLH // 135: fn= ADD, a=0x-0000001, b=0xaaaaaaaa, y=0xaaaaaaa9\\n010000 11111111111111111111111111111111 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LLL // 136: fn= ADD, a=0x-0000001, b=0x55555555, y=0x55555554\\n010000 10101010101010101010101010101010 00000000000000000000000000000000 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 137: fn= ADD, a=0xaaaaaaaa, b=0x00000000, y=0xaaaaaaaa\\n010000 10101010101010101010101010101010 00000000000000000000000000000001 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 138: fn= ADD, a=0xaaaaaaaa, b=0x00000001, y=0xaaaaaaab\\n010000 10101010101010101010101010101010 11111111111111111111111111111111 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLLH LLH // 139: fn= ADD, a=0xaaaaaaaa, b=0x-0000001, y=0xaaaaaaa9\\n010000 10101010101010101010101010101010 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LHL // 140: fn= ADD, a=0xaaaaaaaa, b=0xaaaaaaaa, y=0x55555554\\n010000 10101010101010101010101010101010 01010101010101010101010101010101 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 141: fn= ADD, a=0xaaaaaaaa, b=0x55555555, y=0xffffffff\\n010000 01010101010101010101010101010101 00000000000000000000000000000000 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 142: fn= ADD, a=0x55555555, b=0x00000000, y=0x55555555\\n010000 01010101010101010101010101010101 00000000000000000000000000000001 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 143: fn= ADD, a=0x55555555, b=0x00000001, y=0x55555556\\n010000 01010101010101010101010101010101 11111111111111111111111111111111 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LLL // 144: fn= ADD, a=0x55555555, b=0x-0000001, y=0x55555554\\n010000 01010101010101010101010101010101 10101010101010101010101010101010 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 145: fn= ADD, a=0x55555555, b=0xaaaaaaaa, y=0xffffffff\\n010000 01010101010101010101010101010101 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LHH // 146: fn= ADD, a=0x55555555, b=0x55555555, y=0xaaaaaaaa\\n010001 00000000000000000000000000000000 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 147: fn= SUB, a=0x00000000, b=0x00000000, y=0x00000000\\n010001 00000000000000000000000000000000 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 148: fn= SUB, a=0x00000000, b=0x00000001, y=0xffffffff\\n010001 00000000000000000000000000000000 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 149: fn= SUB, a=0x00000000, b=0x-0000001, y=0x00000001\\n010001 00000000000000000000000000000000 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 150: fn= SUB, a=0x00000000, b=0xaaaaaaaa, y=0x55555556\\n010001 00000000000000000000000000000000 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 151: fn= SUB, a=0x00000000, b=0x55555555, y=0xaaaaaaab\\n010001 00000000000000000000000000000001 00000000000000000000000000000000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLL // 152: fn= SUB, a=0x00000001, b=0x00000000, y=0x00000001\\n010001 00000000000000000000000000000001 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 153: fn= SUB, a=0x00000001, b=0x00000001, y=0x00000000\\n010001 00000000000000000000000000000001 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHL LLL // 154: fn= SUB, a=0x00000001, b=0x-0000001, y=0x00000002\\n010001 00000000000000000000000000000001 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHH LLL // 155: fn= SUB, a=0x00000001, b=0xaaaaaaaa, y=0x55555557\\n010001 00000000000000000000000000000001 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHHLL LLH // 156: fn= SUB, a=0x00000001, b=0x55555555, y=0xaaaaaaac\\n010001 11111111111111111111111111111111 00000000000000000000000000000000 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH LLH // 157: fn= SUB, a=0x-0000001, b=0x00000000, y=0xffffffff\\n010001 11111111111111111111111111111111 00000000000000000000000000000001 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL LLH // 158: fn= SUB, a=0x-0000001, b=0x00000001, y=0xfffffffe\\n010001 11111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 159: fn= SUB, a=0x-0000001, b=0x-0000001, y=0x00000000\\n010001 11111111111111111111111111111111 10101010101010101010101010101010 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 160: fn= SUB, a=0x-0000001, b=0xaaaaaaaa, y=0x55555555\\n010001 11111111111111111111111111111111 01010101010101010101010101010101 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 161: fn= SUB, a=0x-0000001, b=0x55555555, y=0xaaaaaaaa\\n010001 10101010101010101010101010101010 00000000000000000000000000000000 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHL LLH // 162: fn= SUB, a=0xaaaaaaaa, b=0x00000000, y=0xaaaaaaaa\\n010001 10101010101010101010101010101010 00000000000000000000000000000001 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLLH LLH // 163: fn= SUB, a=0xaaaaaaaa, b=0x00000001, y=0xaaaaaaa9\\n010001 10101010101010101010101010101010 11111111111111111111111111111111 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LLH // 164: fn= SUB, a=0xaaaaaaaa, b=0x-0000001, y=0xaaaaaaab\\n010001 10101010101010101010101010101010 10101010101010101010101010101010 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 165: fn= SUB, a=0xaaaaaaaa, b=0xaaaaaaaa, y=0x00000000\\n010001 10101010101010101010101010101010 01010101010101010101010101010101 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LHL // 166: fn= SUB, a=0xaaaaaaaa, b=0x55555555, y=0x55555555\\n010001 01010101010101010101010101010101 00000000000000000000000000000000 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH LLL // 167: fn= SUB, a=0x55555555, b=0x00000000, y=0x55555555\\n010001 01010101010101010101010101010101 00000000000000000000000000000001 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLL LLL // 168: fn= SUB, a=0x55555555, b=0x00000001, y=0x55555554\\n010001 01010101010101010101010101010101 11111111111111111111111111111111 LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHHL LLL // 169: fn= SUB, a=0x55555555, b=0x-0000001, y=0x55555556\\n010001 01010101010101010101010101010101 10101010101010101010101010101010 HLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHH LHH // 170: fn= SUB, a=0x55555555, b=0xaaaaaaaa, y=0xaaaaaaab\\n010001 01010101010101010101010101010101 01010101010101010101010101010101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 171: fn= SUB, a=0x55555555, b=0x55555555, y=0x00000000\\n000011 00000000000000000000000000000101 11011110101011011011111011101111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 172: fn=CMPEQ, a=0x00000005, b=0xdeadbeef, y=0x00000000\\n000101 00000000000000000000000000000101 11011110101011011011111011101111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 173: fn=CMPLT, a=0x00000005, b=0xdeadbeef, y=0x00000000\\n000111 00000000000000000000000000000101 11011110101011011011111011101111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL // 174: fn=CMPLE, a=0x00000005, b=0xdeadbeef, y=0x00000000\\n000011 00010010001101000101011001111000 00010010001101000101011001111000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH HLL // 175: fn=CMPEQ, a=0x12345678, b=0x12345678, y=0x00000001\\n000101 00010010001101000101011001111000 00010010001101000101011001111000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL HLL // 176: fn=CMPLT, a=0x12345678, b=0x12345678, y=0x00000000\\n000111 00010010001101000101011001111000 00010010001101000101011001111000 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH HLL // 177: fn=CMPLE, a=0x12345678, b=0x12345678, y=0x00000001\\n000011 10000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHL // 178: fn=CMPEQ, a=0x80000000, b=0x00000001, y=0x00000000\\n000101 10000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LHL // 179: fn=CMPLT, a=0x80000000, b=0x00000001, y=0x00000001\\n000111 10000000000000000000000000000000 00000000000000000000000000000001 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LHL // 180: fn=CMPLE, a=0x80000000, b=0x00000001, y=0x00000001\\n000011 11011110101011011011111011101111 00000000000000000000000000000101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLH // 181: fn=CMPEQ, a=0xdeadbeef, b=0x00000005, y=0x00000000\\n000101 11011110101011011011111011101111 00000000000000000000000000000101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 182: fn=CMPLT, a=0xdeadbeef, b=0x00000005, y=0x00000001\\n000111 11011110101011011011111011101111 00000000000000000000000000000101 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH LLH // 183: fn=CMPLE, a=0xdeadbeef, b=0x00000005, y=0x00000001\\n000011 01111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHH // 184: fn=CMPEQ, a=0x7fffffff, b=0xffffffff, y=0x00000000\\n000101 01111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHH // 185: fn=CMPLT, a=0x7fffffff, b=0xffffffff, y=0x00000000\\n000111 01111111111111111111111111111111 11111111111111111111111111111111 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LHH // 186: fn=CMPLE, a=0x7fffffff, b=0xffffffff, y=0x00000000\\n\\n// map FN[5:0] to text for operation\\n.plotdef op ? ? ? CMPEQ ? CMPLT ? CMPLE ? ? ? ? ? ? ? ? ADD SUB ? ? ? ? ? ? ? ? ? ? ? ? ? ? F0000 F0001 F0010 F0011 F0100 F0101 XOR F0111 AND XNOR A F1011 F1100 F1101 OR F1111 SHL SHR ? SRA ? ? ? ? ? ? ? ? ? ? ? ?\\n\\n.plot op(FN[5:0])\\n.plot X(A[31:0])\\n.plot X(B[31:0])\\n.plot X(Y[31:0])\\n.plot Z\\n.plot V\\n.plot N\"]]}},\"last_saved\":1481474932562}", "/vtc.html": "{\"tests\":{},\"state\":{\"/lab1/VTC\":{\"schematic\":[[\"/analog/pfet\",[8,-24,0],{\"name\":\"pfet\",\"W\":\"40\"}],[\"/analog/nfet\",[8,8,0],{\"name\":\"nfet\",\"W\":\"8\"}],[\"wire\",[8,8,0,32,0],{\"signal\":\"out\"}],[\"/analog/v_probe\",[40,8,0],{\"name\":\"$/analog/v_probe_1\"}],[\"/analog/v_source\",[-112,-16,0],{\"name\":\"Vdd\",\"value\":\"dc(3)\"}],[\"/analog/v_source\",[-48,8,0],{\"name\":\"Vgs\",\"value\":\"dc(3)\"}],[\"wire\",[8,-40,0,-120,0],{\"signal\":\"Vdd\"}],[\"wire\",[8,40,0,0,16]],[\"wire\",[-112,56,0,64,0]],[\"wire\",[8,56,0,-56,0]],[\"ground\",[-48,56,0]],[\"wire\",[-48,8,0,32,0],{\"signal\":\"in\"}],[\"wire\",[-16,24,0,0,-16]],[\"wire\",[-16,-8,0,0,16]],[\"wire\",[8,-24,0,0,-16]],[\"wire\",[-112,32,0,0,24]],[\"wire\",[-112,-16,0,0,-24]]]}},\"last_saved\":1483551883910}", "/bsim_sandbox.html": "{\"state\":{\"BSim Sandbox\":\".include \\\"beta.uasm\\\"\\n\\nBR(.)\\n\\n\"}}", "/jade.html": "{\"tests\":{},\"state\":{\"/user/untitled\":{\"properties\":{\"name\":{\"edit\":\"yes\",\"type\":\"name\",\"value\":\"\",\"label\":\"Name\"},\"tran_tstop\":{\"edit\":\"yes\",\"type\":\"string\",\"value\":\"1\",\"label\":\"tran_tstop\"}},\"schematic\":[[\"/analog/v_source\",[-56,-24,0],{\"value\":\"step(0,1)\"}],[\"/analog/resistor\",[-8,-24,1]],[\"ground\",[-56,24,0]],[\"/analog/v_probe\",[-8,-24,0]],[\"/analog/capacitor\",[-8,-24,0]],[\"wire\",[-8,24,0,-48,0]]],\"test\":[[\"test\",\"\"]]}},\"last_saved\":1547838471412}", "/lab6.html": "{\"state\":{\"Lab 6\":\".include \\\"beta.uasm\\\"\\n\\n// A little cache benchmarking program: adds N words from\\n// array A, then repeats. The starting addresses for the\\n// program and the array A are set by the I and A symbols\\n// below.\\n\\n. = 0\\n BR(test) // branch to the start of the benchmark\\n\\nI = 0x200 // location of benchmark program\\nA = 0x240 // starting address of array A\\nN = 16 // size of data region (in words)\\n\\n. = I // start benchmark program here\\ntest:\\n CMOVE(N,R0) // initialize loop index J\\n CMOVE(0,R1)\\n\\nloop: // add up elements in array\\n SUBC(R0,1,R0) // decrement index\\n MULC(R0,4,R2) // convert to byte offset\\n LD(R2,A,R3) // load value from A[J]\\n ADDC(R3,0,R1) // add to sum\\n BNE(R0,loop) // loop until all words are summed\\n\\n BR(test) // perform test again!\\n\\n// allocate space to hold array\\n. = A\\n STORAGE(N) // N words\\n\"}}"}