import Head from 'next/head' import Image from 'next/image' import Table from 'react-bootstrap/Table' import Container from 'react-bootstrap/Container' import Nav from 'react-bootstrap/Nav' import Navbar from 'react-bootstrap/Navbar'; import NavDropdown from 'react-bootstrap/NavDropdown' import Row from 'react-bootstrap/Row' import Col from 'react-bootstrap/Col' import { useState } from 'react'; import Button from 'react-bootstrap/Button'; export default function Home() { const [clock, setClock] = useState(0); const [instructionStatus, setInstructionStatus] = useState([]); const [reservationStations, setReservationStations] = useState([]); const [registerStatus, setRegisterStatus] = useState([]); function issueInstruction() { } function executeInstruction() { } function writeInstruction() { } function nextCycle() { setClock(clock + 1); issueInstruction(); executeInstruction(); writeInstruction(); } return ( <> <Head> <title>Tomasulo</title> <meta name="description" content="Generated by create next app" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="icon" href="/favicon.ico" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous" /> </Head> <Navbar bg="dark" variant="dark" expand="lg"> <Container> <Navbar.Brand href="/">Tomasulo</Navbar.Brand> </Container> </Navbar> <main> <Container> <Row className="row my-4"> <Col> <h3>Ciclos: {clock}</h3> </Col> <Col className="text-end"> <Button className="ms-4" variant="primary" onClick={nextCycle}>Próximo</Button> </Col> </Row> <Row className="row my-4"> <Col> <div className="my-4"> <h3>Instruction Status</h3> </div> <Table bordered hover> <thead> <tr> <th>Instruction</th> <th>Issued</th> <th>Execute</th> <th>Write Result</th> </tr> </thead> <tbody> {instructionStatus.map((instr, index) => ( <tr> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> </tr> ))} </tbody> </Table> </Col> <Col> <div className="my-4"> <h3>Reorder Buffer</h3> </div> <Table bordered hover> <thead> <tr> <th>Entry</th> <th>Busy</th> <th>Instruction</th> <th>State</th> <th>Destination</th> <th>Value</th> </tr> </thead> <tbody> {instructionStatus.map((instr, index) => ( <tr> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> </tr> ))} </tbody> </Table> </Col> </Row> <Row className="row my-4"> <Col> <div className="my-4"> <h3>Reservation Stations (Load/Store)</h3> </div> <Table bordered hover> <thead> <tr> <th>Time</th> <th>Busy</th> <th>Op</th> <th>Vj</th> <th>Vk</th> <th>Qj</th> <th>Qk</th> <th>A</th> </tr> </thead> <tbody> {reservationStations.map((instr, index) => ( <tr> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> </tr> ))} </tbody> </Table> </Col> <Col> <div className="my-4"> <h3>Reservation Stations</h3> </div> <Table bordered hover> <thead> <tr> <th>Name</th> <th>Busy</th> <th>Op</th> <th>Vj</th> <th>Vk</th> <th>Qj</th> <th>Qk</th> <th>A</th> </tr> </thead> <tbody> {reservationStations.map((instr, index) => ( <tr> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> <td>batata</td> </tr> ))} </tbody> </Table> </Col> </Row> <div className="my-4"> <h3>Registers Status</h3> </div> <Table bordered hover> <thead> <tr> <th>Field</th> <th>F0</th> <th>F1</th> <th>F2</th> <th>F3</th> <th>F4</th> <th>F5</th> <th>F6</th> <th>F7</th> <th>F8</th> <th>F9</th> <th>F10</th> </tr> </thead> <tbody> <tr> <td>Reorder #</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>Busy</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </Table> <div className="mt-auto text-center"> <span className="text-muted">Caio Arâes, David Freitas, Guilherme Werner</span> </div> </Container> </main> </> ) }