1 / 11

A CORBA Collaborative Environment for PLDs

A CORBA Collaborative Environment for PLDs. Irénée Dupré la Tour, Rami Abielmona ELG 5191 Thursday November 30, 2000 Prof. Dan Ionescu. Statement of the Project. The main objective of this project is the remote programming of a Programmable Logic Device (PLD) .

shika
Download Presentation

A CORBA Collaborative Environment for PLDs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A CORBA Collaborative Environment for PLDs Irénée Dupré la Tour, Rami Abielmona ELG 5191 Thursday November 30, 2000 Prof. Dan Ionescu

  2. Statement of the Project • The main objective of this project is the remote programming of a Programmable Logic Device (PLD). • Each PLD can be programmed by receiving a pre-derived bitstream, with which the internal logic blocks of the PLD are programmed. This bitstream is the output of the hardware logic design process and/or design automation tools. • Traditionally, the bitstream is downloaded to the PLD through the use of a serial/parallel port, or more recently through a PCI bus. The crucial point is that the local host usually performs this download action to the PLD. • The purpose of this project is to allow a remote host to program the logic blocks of a PLD across a certain type of network. • The bitstream can then be sent from the “design host machine” (DHM) to the “field host machine” (FHM) for remote configurations and/or updates.

  3. Requirement Specifications • The design specifications are as follows: • A bitstream will remotely program a PLD • All PLDs in this project will actually be FPGAs • At least one FHM will be present, with the option of selecting different bitstreams for each FHM (if more than one) • A bitstream represents a hardware circuit • One DHM will be present, with the option of selecting different bitstreams for different FHMs (again, if more than one) • The implementation specifications are as follows: • CORBA will be utilized as the implementation standard • Valid bitstreams will be utilized, hence must be created • The FPGA vendors are Xilinx and Altera • The FPGAs are to be integrated as CORBA objects, with direct hardware interface capabilities

  4. FPGAs to be tested HOT II D.S. using a Xilinx FPGA Research board using an Altera FPGA

  5. Main components • Main Server (DHM) • Handles DB requests from the client • Sends the bitstream to configure the PLD • Database • Stores circuit configuration • Main Client • Requests a circuit configuration • Field Host machine • Hosts a FPGA • FPGA Server • Instantiates the FPGA with the bitstream

  6. Functional Operation • As seen in the general architecture diagram, here are the major system components and their functional operation: • Main Server: • getFPGAList() : FPGA[] • makeCircuit(FPGA, TypeOfCircuit) : string • Host Machine Server: • getFPGAList() : FPGA[] • remoteProgramFPGA(FPGA) : string • registerHostMachine(HostMachine) : void • unregisterHostMachine(HostMachine) : void • getHostMachines() : HostMachine[] • Host Machine: • listFPGAs() : FPGA[] • programFPGA(Bitstream) : FPGA • FPGA: • getMake() : string • programFPGA(Bitstream) : FPGA

  7. Class diagram

  8. Sequence diagram

  9. Class definitions • Main Server • getFPGAList() is called by the Main Client to fill the GUI • makeCircuit() is called by the go() method of the Main Client • Main Client • On input of the user, the go() method is called • Host Machine Server • register/unregister is called by Host Machine(s) • getFPGAList() is called by the Main Server. This calls getHostMachines() to query each machine • Host machine • listFPGA() is called by the Host Machine Server • programFPGA(Bitstream) is called by the Host Machine Server to program the FPGA • FPGA • programFPGA(Bitstream) is called to program a particular FPGA • getMake() is called to query the FPGA for its type (e.g. XC9528) • Xilinx/Altera • Program{Xilinx|Altera}(Bitstream) is called by FPGA to program the FPGA object

  10. Conclusions • The implementation phase of this project will attempt to fulfill all the functional requirements • This project will aid in the remote download of a configuration of a PLD from a design site, to the intended logic device, the latter ideally residing a good distance away from the design site • This project will also aid in the development of some metrics for certain interesting hardware remote programming characteristics • This project will provide us with a great, and detailed exposure to the CORBA interworkings

More Related