JHDLBits: The Merging of Two Worlds

Size: px
Start display at page:

Download "JHDLBits: The Merging of Two Worlds"

Transcription

1 JHDLBits: The Merging of Two Worlds Alexandra Poetter 1, Jesse Hunter 1, Cameron Patterson 1, Peter Athanas 1, Brent Nelson 2, and Neil Steiner 1 1 Configurable Computing Lab, Virginia Tech, Blacksburg, VA 24061, USA {apoetter, jehunte3, cdp, athanas, nsteiner}@vt.edu, 2 Configurable Computing Lab, Brigham Young University, Provo, UT 84602, USA nelson@ee.byu.edu Abstract. This paper introduces JHDLBits, the integration of two prominent FPGA design tools: JHDL and JBits. JHDLBits offers the low-level access and control provided by JBits with the high-level structural circuit design of JHDL. Furthermore, the JHDLBits flow provides greater control of resource manipulation, placement, and routing, and gives researchers a sandbox to explore advanced interactions with FPGA bitstreams. This paper presents the overall architecture of the open-source JHDLBits project. Details are provided on how the core components - JHDL, JBits3 for Virtex-II, and the ADB connectivity database - are linked together to provide a cohesive design environment. 1 Introduction Investigators involved in FPGA-related research often require a testbed for exploring and evaluating new tools, new algorithms, and new ways to interact with FPGA bitstreams. Historically, this has often proven to be a difficult task. Exceptional exploratory environments have been created, such as VPR by Betz and Rose [1] that provide realistic models of FPGAs. With the infrastructure created by VPR, researchers could determine the effects of, for example, placement enhancements on wire length. The relevance of such exploration was sometimes diminished since the results from the experimental environment could not be definitively confirmed on a real FPGA since FPGA vendors tend to be secretive on the low-level architectural details of their products. Many languages, IDEs, and compilers have emerged in recent years that offer interesting environments for creating FPGA bitstreams, but most rely on the FPGA vendors implementation flows to map, place, and route the final design. The authors of JBits [2] addressed this problem to a certain degree by providing an API to the FPGA bitstream. As a result, researchers were empowered with the ability to manipulate FPGA resources at the lowest level. With JBits, researchers could develop, say, their own FPGA router, and test it on real devices. JBits also enabled researchers to interact with FPGAs in ways prohibited by the vendor s prescribed implementation tool flow. While JBits was in many ways an enabling technology for exploring nontraditional uses of FPGAs, the abstraction presented to the developer was at a

2 fairly low level (at least in early versions of JBits), and sometimes required detailed architectural knowledge. In contrast to this, tools such as Brigham Young s JHDL [3] use a much higher level of abstraction, often making it a more conducive environment for large application development. JHDLBits is an open-source endeavor striving to merge the salient features of these two prominent FPGA research environments. JHDLBits blends the lowlevel control of JBits with the high-level design abstractions of JHDL. Users can take advantage of the run-time and partial reconfiguration features of JBits without having to work entirely at the bitstream level. Furthermore, full control over placement and routing is still possible. The JHDLBits project consists of a collection of tightly integrated components that together provide an end-toend pathway for creating, manipulating, and debugging FPGA bitstreams. More importantly, because most of the components of this project are open-source, researchers investigating architecture-specific placers/planners/routers/compilers have the advantage of replacing the stock JHDLBits components at will. JHDLBits integrates JBits low-level bit manipulation capabilities into the JHDL integrated development environment. The extensible JHDL netlister has been modified to produce bitstreams directly. The JHDL debugger communicates to a target FPGA through JBits XHWIF [4]. JHDL is naturally extended so that instead of generating an EDIF file, which is run through the traditional vendor tools to generate a bitstream, the primitive and net information is extracted into a database that is suitable for JBits to process. A bitstream is created by elaborating, placing, and routing the corresponding JBits primitives all within the JHDLBits environment. Figure 1 illustrates the components that collectively make up the JHDLBits project. Fig. 1. Relationships of the open source constituents of JHDLBits This paper presents the overall architecture of the JHDLBits project. Details are provided on how the core components - JHDL, JBits3 for Virtex-II, and the

3 ADB connectivity database [5] - are linked together to provide a cohesive design environment. Sections 2, 3, and 4 provide background information on JHDL, JBits, and ADB, respectively. Section 5 introduces the FPGA device simulator that can be used to verify the JHDLBits design. The architecture of JHDLBits is discussed in Section 6. A JHDLBits design implementation and results are included in Section 7 and Appendix A. 2 JHDL JHDL is a Java-based design language for FPGAs developed at Brigham Young University. Java was selected because it is object-oriented, easy to use, has builtin documentation capabilities, is portable, and has a rich set of GUI APIs that are integral to the language. The primary distinction of JHDL is the creation of a single integrated API that allows the designer to express circuit organizations that dynamically change over time [3]. JHDL [10] is a structural HDL - that is, circuits are described by structurally instantiating lower-level building blocks. In JHDL, two basic Java classes form the basis for all circuits: Logic and Wire. Designers create a new logic cell in their design by extending Logic (creating a new class), defining a cell interface (essentially a VHDL entity declaration), and defining the architecture of the cell (essentially a VHDL architecture body). Wires support an API for creation and manipulation: users can create single- or multi-bit wires, and concatenate or extract wires from existing wires. The body of a design instantiates predefined circuit modules selected from the JHDL design libraries. The JHDL design libraries were created in a layered fashion and range from a library of Xilinx primitives such as gates and flip flops, to parameterized logic generator methods, to technology-independent and technology-specific module generators for the creation of larger elements (such as counters, memories, floating point arithmetic modules, CORDIC units, FFTs). JHDL circuit descriptions are based on Java; thus the full range of Java language features are available to construct the circuit. These features include file I/O, recursion, control flow constructs (for, while, do loops), functions, user-defined types (objects), and reflection. A key feature of JHDL is its ability to operate in either simulation or hardware mode. When in simulation mode, the values of all elements in the circuit data structure are computed by the JHDL simulator. However, JHDL also supports a hardware-in-the-loop mode of execution. In this case, starting execution of the circuit downloads a bitstream to the FPGA platform, and stepping the clock triggers a clock step on the actual hardware. Between clock steps, bitstream readback extracts the hardware state, which is back annotated into the circuit data structure for graphical display. As a result, the same GUI interface and tools can be used for debugging in either in simulation mode or hardware execution mode. This simplifies the transition from simulation to hardware debug, and streamlines the development process. Figure 2 presents a screen capture of the JHDL GUI.

4 Fig. 2. JHDL graphical user interface screen shot 3 JBits Background and Enhancements JBits is a collection of Java classes that build upon an API that provides access to every configurable resource in a Xilinx FPGA. The JBits3 SDK [9] is the latest release from Xilinx that provides support for the Virtex-II FPGA family. This API permits device resources to be programmed and probed individually at run-time, even with the FPGA active in a working system. This interface operates on either bitstreams generated by Xilinx design tools, or on bitstreams read back from actual hardware. Through this mechanism, JBits supports the run-time reconfiguration of Xilinx FPGAs. For JHDL to function with JBits, several extensions and enhancements were needed. A bridging object, called the Bitstream class, was created to allow abstract access to both the JBits and router objects, enabling the creation of primitives without dependencies on architecture-specific classes. The Net class was extended to allow the connection of primitives by maintaining a list of the source and sink pins that form a net. To bridge the gap between JHDL and JBits, a library of primitive cores was created that map the JHDL primitives directly to the FPGA fabric. For completeness, each JHDL primitive requires a corresponding JBits primitive. The primitives created for JHDLBits have one constructor specifically designed for the JHDL-to-JBits flow, with the other constructors catering to a JBits-only

5 design flow. A primitive requires two pieces of information to be implemented: a list of input and output nets, and placement information. The primitive uses the placement location to assign source and sink pins to the associated nets, and then accesses the JBits object from the Bitstream class to configure the internal logic and resources using JBits calls. 4 ADB Background ADB is an alternate wire database for Xilinx Virtex, Virtex-E, Virtex-II, and Virtex-II Pro FPGAs [6]. Its purpose is to provide exhaustive coverage of device wiring and connectivity, while remaining fast, compact, and compatible with JBits. The exhaustive coverage is derived from the same proprietary data that the Xilinx mainstream tools use, and presents an improvement over the coverage available in past and present JBits wire databases. In addition, the database files used by ADB are more than an order of magnitude smaller than their counterparts in the mainstream tools. Although ADB is primarily a wire database, it also includes support services for routing, unrouting, and tracing. These interfaces are publicly exposed, so they can be extended or replaced as necessary by the user. An ADB-based router is included with JHDLBits, and is based on a robust search algorithm enhanced with heuristics suited to each FPGA family. The unrouter provides services not normally found in static tool flows, by allowing the user to disconnect existing nets, in order to reconnect other nets at runtime. This may be especially useful in embedded systems that have to dynamically reconfigure themselves [7]. The tracer may also be used to support reconfiguration, by inferring connectivity information from a configuration bitstream, in order to safely modify designs without causing contention. Because JBits 3.0 ships without a router, ADB currently provides the only routing option available to JBits users. However, ADB may also be of interest to researchers wanting to evaluate routing algorithms with wiring data from commercial FPGAs. In the context of JHDLBits, the ADB router simply implements RouterInterface as defined by JBits, which makes it reasonable to plug ADB into the project without concern for its inner workings. 5 FPGA Device Simulator Included in the JHDLBits project is the design of a Virtex-II device simulator (VTsim) [11]. Initially, a functional simulator has been created using a globally synchronous event-driven model with CLB granularity. The simulator can be used as part of the JHDLBits design flow, but can also function independently because it only requires a bitstream as input. The simulator first invokes the ADB tracer on the bitstream to be simulated. After the tracer builds a database of all internal connections, the simulator constructs the netlist from this information. An optional JHDLBits simulation file can be used to provide the simulator with specific information such as net

6 z z names and placement information. A simulation cycle begins with the evaluation of all clocked elements within the CLBs, followed by the evaluation of all nonclocked elements. Upon completion of a simulation cycle, the simulator can either write the updated results back to a bitstream, or allow GUI access to the modified information. It should be noted that this simulator can simulate any Virtex-II bitstream, regardless of the flow used to create the bitstream. 6 JHDLBits Design Flow The traditional JHDL design flow produces an EDIF file, which is used by the Xilinx implementation tools to generate a bitstream. The JHDLBits flow instead relies upon JBits extensions to generate a bitstream. A high-level design is created and simulated with JHDL libraries and graphical debugging tools. The JHDL primitives, instances, and nets are extracted and mapped to equivalent JBits primitives and nets. JBits primitives are placed using either placement directives or an extendable placement algorithm, and then routed using ADB. A bitstream is generated, along with net and simulator files. Figure 3 shows the steps involved in the JHDLBits design flow. JHDL Design ADB Netlist JHDLBits TechMapper ADB Router JHDLBits Extractor extract primitive information Nets Dimensions Instances Placement Directives Placer VTsim Virtex-II Device Simulator Builder create JBits ULPrimitives Bitstream JHDLBits JBits Fig. 3. JHDLBits design flow The first step in the JHDLBits design flow is the JHDLBitsTechMapper. The JHDLBitsTechMapper extends the JHDL Virtex2TechMapper by overriding the netlist method, which invokes the JHDLBitsExtractor instead of the EDIFNetlister. Overriding device specific helper methods, such as add and subtract, allows for more optimized primitives.

7 The JHDLBitsExtractor uses JHDL libraries such as the Cell and Net classes to extract primitive, instance and net information, which are stored in HashMap collections. The primitive HashMap contains the ports and directions, and the instance HashMap contains the associated primitive, nets, and dimensions. The net HashMap contains ports of the net and a JBits net of the same name. The instance HashMap is then iterated in order to specify placement of the instances. The default placement algorithm stores the assigned CLB, slice, LUT, and LE (logic element) to the instance HashMap. The assigned coordinate information is also maintained for an instance that is ExternallyUpdateable, which refers to a JHDL cell (flip-flops, memories, etc.) that changes value and can be read back using the JHDL simulator in hardware execution mode. A JBits primitive is now created for each instance. Once all of the JBits primitives have been created, a router utilizing the connectivity information in ADB routes all nets connected to the JBits primitives. After the design has been successfully routed, JBits is used to generate a bitstream. JHDLBits and VTsim tie into the JHDL simulator through the JHDL HardwareInterface. VTsim is given the bitstream generated, along with coordinate information for the cells that are ExternallyUpdateable, and returns values for these cells after each clock cycle. The updated values are displayed in the JHDL GUI interface. Partial reconfiguration will be supported in JHDLBits through an incremental design flow. In an incremental design methodology, a user has completed part of a design, and would like to lock it down by no longer having to repeatedly place and route this part of the design. This would be accomplished by including a reserved area with defined inputs and outputs into the current JHDL design. This design is run through the JHDLBitsExtractor, but the placer and router are constrained to avoid the reserved area. At a later time, the user can then include additional logic into the reserved area, and once again run through the JHDLBitsExtractor in order to generate a bitstream. 7 JHDLBits Implementation and Results JHDLBits has been used to generate bitstreams for simple JHDL designs such as the following partial NBitAdder code: 1 // Simple model of a simple parameterized n-bit adder: 2 Wire carries = wire(width); // Intermediate carry wires 3 for (int i=0; i < width; i++) { 4 if (i==0) 5 new FullAdder(this,a.gw(i),b.gw(i),gnd(), 6 sum.gw(i), carries.gw(0)); 7 else 8 new FullAdder(this, a.gw(i), b.gw(i), carries.gw(i-1), 9 sum.gw(i), carries.gw(i)); 10 } Once the above design is compiled, the user needs to wire the NBitAdder design into the top-level system as shown below:

8 1 public class tb nbitadder extends Logic implements TestBench { 2 static JBitsTechMapper tm; 3 static Cell mynadd; 4 static HWSystem hw; 5 6 public static void main(string args[]) { 7 hw = new HWSystem(); // create a new system 8 tb nbitadder tb = new tb nbitadder(hw); 9 tm.netlist(mynadd, true, "testnbitadd.txt"); 10 } 11 public tb nbitadder(node parent) { 12 super(parent); 13 tm = new JBitsTechMapper(); 14 Logic.setDefaultTechMapper(tm); 15 Wire a = wire(4, "a"); 16 Wire b = wire(4, "b"); 17 Wire sum = wire(4, "sum"); 18 mynadd = new NBitAdder(this, a, b, sum); // connect 19 } // NBitAdder design 20 } Lines 2 and 13 indicate how JHDLBits is invoked from a JHDL design. As previously mentioned, the JHDLBitsBitsTechMapper netlist method calls the JHDLBitsExtractor instead of the EDIFNetlister. The JHDLBitsExtractor obtains all the information required from the JHDL design to create, place and route JBits primitives. A bitstream is then generated. The output generated for this sample run is included in Appendix A. As shown at the start of the output file, the ADB database is imported for the Virtex-II XC2V40 device. Next, the JHDLBitsExtractor begins traversing the hierarchical logic blocks at the top-level NBitAdder cell, and then through all successive children. When a new gnd or and2 primitive is encountered, the ports and directions are stored. The specific instance information of the gnd and and2 primitives is also retained. This is done recursively for all primitives and instances. Next, the b<1> net, then all remaining nets are extracted and converted to JBits nets. The placer assigns CLB, slice, LUT, and LE (logic elements) locations for each instance. After placement, JBits primitives are created, such as the and2, and associated nets are assigned source and sink pins. An example is the FullAdder-3/and_out-2 net, which is assigned to pin CLB.X1[0][2]. This pin refers to the X output in CLB row zero, column two, slice one. Once all JBits primitives are created and pins assigned, ADB is invoked to route the nets. Finally, a bitstream is generated. A few pertinent statistics are placements per second, and routes per second. The average placement rate is 512 primitives in 11 milliseconds, or 46,545 primitives per second. Please note that this design was run using a simple placer. A 100% utilization stress test on a Pentium 3.2 GHz processor running Sun Java HotSpot(tm) Client VM (build b05, mixed mode) yielded the ADB routing results in Table 1. The stress test consisted of a design that filled up every LE in the FPGA device with logic gates, which were then routed in a random fashion. Table 1. ADB routing performance for a 100% utilization stress test Device Route Time Total Nets Total Wires Nets/sec Wires/sec XC2V40 5,462 ms , ,813 XC2V500 80,865 ms 6, , ,130 XC2V ,080 ms 28,671 2,479, ,916

9 8 Conclusions and Future Work A major goal of the JHDLBits project has been to retain the properties and philosophies of JBits. Following this principle, it is essential to provide the ability to reconfigure the device through the JHDLBits design flow. This area is important and will be addressed in the near future. Another goal is to allow for partitioning of the design, so that the user can run part of the JHDL design through the mainstream tools and part through JBits via the JHDLBits extractor. The developers would like to investigate using JHDLBits in an embedded system, possibly using a small subset of JHDL and ADB rewritten in a language other than Java to reduce memory usage. In the current version of JHDLBits, placement is performed in a greedy suboptimal manner. Placement directives inherent in JHDL along with cell properties are currently being investigated and may possibly need refinement. Controlled placement will allow the user to identify a specific location in the device, permitting easier debugging as well as optimizing performance. The placer could potentially benefit from the use of previously designed placement algorithms, such as a core-based incremental placement algorithm [8]. Additional work is also needed to complete the JBits primitive library. The net interaction with the router must be improved to decrease memory usage and reduce routing time. The device simulator will continue to be developed in order to become more robust. It has been successfully applied to small static designs. The next step in the simulator design is to decrease memory usage, improve execution time, and provide a more flexible interface between JHDL and the router. The JHDLBits source code along with additional information can be found at 9 Acknowledgements This project is supported by a grant from Xilinx, Inc.; JBits (Xilinx and Virginia Tech) and JHDL (Brigham Young University) were both funded under the DARPA ACS program. References 1. V. Betz and J. Rose, VPR: A New Packing, Placement and Routing Tool for FPGA Research, International Workshop on Field Programmable Logic and Applications, pages , September S. A. Guccione and D. Levi, XBI: A Java-based interface to FPGA hardware, Configurable Computing Technology and its uses in High Performance Computing, DSP and Systems Engineering, Proc. SPIE Photonics East, J. Schewel (Ed.), SPIE - The International Society for Optical Engineering, volume 3526, pages , Bellingham, WA, November B. Hutchings, P. Bellows, J. Hawkins, S. Hemmert, B. Nelson, and M. Rytting, A CAD Suite for High-Performance FPGA Design, Proceedings of the IEEE Workshop on FPGAs for Custom Computing Machines, pages 12 24, Napa, CA, April 1999.

10 4. D. Levi and S. A. Guccione, BoardScope: A Debug Tool for Reconfigurable Systems, Configurable Computing Technology and its uses in High Performance Computing, DSP and Systems Engineering, Proc. SPIE Photonics East, J. Schewel (Ed.), SPIE - The International Society for Optical Engineering, volume 3526, pages , Bellingham, WA, November N. Steiner, A Standalone Wire Database for Routing and Tracing in Xilinx Virtex, Virtex-E, and Virtex-II FPGAs, Master s thesis, Virginia Tech, August N. Steiner, An Alternate Wire Database for Xilinx FPGAs, Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines, Napa, CA, April R. Fong, S. Harper, and P. Athanas, A Versatile Framework for FPGA Field Updates: An Application of Partial Self-Reconfiguration, Proceedings of the 14th IEEE International Workshop on Rapid System Prototyping, pages , San Diego, CA, June J. Ma, Incremental Design Techniques with Non-Preemptive Refinement for Million-Gate FPGAs, Doctoral dissertation, Virginia Tech, January The JBits SDK, Xilinx, Inc., The JHDL Home Page, Brigham Young University, J. Hunter, A Device-Level FPGA Simulator, Master s thesis, Virginia Tech, June Appendix A: Sample JHDLBits Run (Partial Listing) 1 Opening ADB database...edu\vt\adb\virtex2\xc2v40.db... 2 In JBitsExtractor expand function. 3 cell NBitAdder 4 In JBitsExtractor expand function. 5 cell gnd 6 In JBits extractprimitive function. 7 (port GROUND (direction 1)) 8 In JBits extractinstance function. 9 Instance Name gnd-1 10 cellref gnd 11 In JBitsExtractor expand function. 12 cell and2 13 In JBits extractprimitive function. 14 (port i0 (direction 0)) 15 (port i1 (direction 0)) 16 (port o (direction 1)) 17 In JBits extractinstance function. 18 Instance Name FullAdder/andX g/andx/and2 19 cellref and Net name b<1> 22 portname: i1 instancename: FullAdder-1/xor3 23 portname: i1 instancename: FullAdder-1/andX g-2/andx/and2 24 portname: i0 instancename: FullAdder-1/andX g/andx/and Placing in progress Instance 18 FullAdder-3/andX g-2/andx/and2 28 Port 0: Xwire<2> 29 Port 1: b<3> 30 Port 2: FullAdder-3/and out-2 31 Creating JBits and2 Object Adding SINK on Net(Xwire<2>): CLB.F1 B1[0][2] 33 Adding SINK on Net(b<3>): CLB.F2 B1[0][2] 34 Adding SOURCE on Net(FullAdder-3/and out-2): CLB.X1[0][2] Calling router Net name = FullAdder-3/and out-2 38 Sourcepin = CLB.Y2[0][4] 39 Sinkpins: 40 CLB.G1 B1[0][2] 41 Routing this connection Evaluated 71 groups in 8 tiles. 44 Bitstream Generated.

software, user input or sensor data. RTP Cores utilize a certain number of Configurable Logic Blocks (CLBs) on the device when created and contain a s

software, user input or sensor data. RTP Cores utilize a certain number of Configurable Logic Blocks (CLBs) on the device when created and contain a s Debug of Reconfigurable Systems Tim Price, Delon Levi and Steven A. Guccione Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124 (USA) ABSTRACT While FPGA design tools have progressed steadily, availability

More information

JRoute: A Run-Time Routing API for FPGA Hardware

JRoute: A Run-Time Routing API for FPGA Hardware JRoute: A Run-Time Routing API for FPGA Hardware Eric Keller Xilinx Inc. 2300 55 th Street Boulder, CO 80301 Eric.Keller@xilinx.com Abstract. JRoute is a set of Java classes that provide an application

More information

A Device-Level FPGA Simulator

A Device-Level FPGA Simulator A Device-Level FPGA Simulator Jesse Everett Hunter III Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree

More information

FPGA: What? Why? Marco D. Santambrogio

FPGA: What? Why? Marco D. Santambrogio FPGA: What? Why? Marco D. Santambrogio marco.santambrogio@polimi.it 2 Reconfigurable Hardware Reconfigurable computing is intended to fill the gap between hardware and software, achieving potentially much

More information

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool Md. Abdul Latif Sarker, Moon Ho Lee Division of Electronics & Information Engineering Chonbuk National University 664-14 1GA Dekjin-Dong

More information

Xilinx Inc Logic Drive. intellectual property has risen. Rather than re-invent commonly

Xilinx Inc Logic Drive. intellectual property has risen. Rather than re-invent commonly Run-Time Parameterizable Cores Steven A. Guccione and Delon Levi Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 (USA) Steven.Guccione@xilinx.com Delon.Levi@xilinx.com Abstract. As FPGAs have increased

More information

Testing FPGA Devices Using JBits

Testing FPGA Devices Using JBits Testing FPGA Devices Using JBits Prasanna Sundararajan, Scott McMillan and Steven A. Guccione Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 (USA) {Prasanna.Sundararajan, Scott.McMillan, Steven.Guccione}@xilinx.com

More information

JPG A Partial Bitstream Generation Tool to Support Partial Reconfiguration in Virtex FPGAs

JPG A Partial Bitstream Generation Tool to Support Partial Reconfiguration in Virtex FPGAs JPG A Partial Bitstream Generation Tool to Support Partial Reconfiguration in Virtex FPGAs Anup Kumar Raghavan Motorola Australia Software Centre Adelaide SA Australia anup.raghavan@motorola.com Peter

More information

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs New Directions in Programming FPGAs for DSP Dr. Jim Hwang Xilinx, Inc. Agenda Introduction FPGA DSP platforms Design challenges New programming models for FPGAs System Generator Getting your math into

More information

BoardScope: A Debug Tool for Reconfigurable Systems

BoardScope: A Debug Tool for Reconfigurable Systems Header for SPIE use BoardScope: A Debug Tool for Reconfigurable Systems Delon Levi and Steven A. Guccione Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124 ABSTRACT BoardScope is a portable, interactive

More information

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC Zoltan Baruch Computer Science Department, Technical University of Cluj-Napoca, 26-28, Bariţiu St., 3400 Cluj-Napoca,

More information

An Incremental Trace-Based Debug System for Field-Programmable Gate-Arrays

An Incremental Trace-Based Debug System for Field-Programmable Gate-Arrays Brigham Young University BYU ScholarsArchive All Theses and Dissertations 2013-11-07 An Incremental Trace-Based Debug System for Field-Programmable Gate-Arrays Jared Matthew Keeley Brigham Young University

More information

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments 8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments QII51017-9.0.0 Introduction The Quartus II incremental compilation feature allows you to partition a design, compile partitions

More information

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering FPGA Fabrics Reference Wayne Wolf, FPGA-Based System Design Pearson Education, 2004 Logic Design Process Combinational logic networks Functionality. Other requirements: Size. Power. Primary inputs Performance.

More information

RTL Coding General Concepts

RTL Coding General Concepts RTL Coding General Concepts Typical Digital System 2 Components of a Digital System Printed circuit board (PCB) Embedded d software microprocessor microcontroller digital signal processor (DSP) ASIC Programmable

More information

Verilog Design Entry, Synthesis, and Behavioral Simulation

Verilog Design Entry, Synthesis, and Behavioral Simulation ------------------------------------------------------------- PURPOSE - This lab will present a brief overview of a typical design flow and then will start to walk you through some typical tasks and familiarize

More information

Synthesizable FPGA Fabrics Targetable by the VTR CAD Tool

Synthesizable FPGA Fabrics Targetable by the VTR CAD Tool Synthesizable FPGA Fabrics Targetable by the VTR CAD Tool Jin Hee Kim and Jason Anderson FPL 2015 London, UK September 3, 2015 2 Motivation for Synthesizable FPGA Trend towards ASIC design flow Design

More information

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6 ACCESS IC LAB Outline Concepts of Xilinx FPGA Xilinx FPGA Architecture Introduction to ISE Code Generator Constraints

More information

Lattice Semiconductor Design Floorplanning

Lattice Semiconductor Design Floorplanning September 2012 Introduction Technical Note TN1010 Lattice Semiconductor s isplever software, together with Lattice Semiconductor s catalog of programmable devices, provides options to help meet design

More information

INTRODUCTION TO FPGA ARCHITECTURE

INTRODUCTION TO FPGA ARCHITECTURE 3/3/25 INTRODUCTION TO FPGA ARCHITECTURE DIGITAL LOGIC DESIGN (BASIC TECHNIQUES) a b a y 2input Black Box y b Functional Schematic a b y a b y a b y 2 Truth Table (AND) Truth Table (OR) Truth Table (XOR)

More information

How Much Logic Should Go in an FPGA Logic Block?

How Much Logic Should Go in an FPGA Logic Block? How Much Logic Should Go in an FPGA Logic Block? Vaughn Betz and Jonathan Rose Department of Electrical and Computer Engineering, University of Toronto Toronto, Ontario, Canada M5S 3G4 {vaughn, jayar}@eecgutorontoca

More information

FPGA architecture and design technology

FPGA architecture and design technology CE 435 Embedded Systems Spring 2017 FPGA architecture and design technology Nikos Bellas Computer and Communications Engineering Department University of Thessaly 1 FPGA fabric A generic island-style FPGA

More information

What is Xilinx Design Language?

What is Xilinx Design Language? Bill Jason P. Tomas University of Nevada Las Vegas Dept. of Electrical and Computer Engineering What is Xilinx Design Language? XDL is a human readable ASCII format compatible with the more widely used

More information

PlanAhead Release Notes

PlanAhead Release Notes PlanAhead Release Notes What s New in the 11.1 Release UG656(v 11.1.0) April 27, 2009 PlanAhead 11.1 Release Notes Page 1 Table of Contents What s New in the PlanAhead 11.1 Release... 4 Device Support...

More information

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Introduction This lab introduces the concept of modular design by guiding you through

More information

Development of a Design Framework for Platform-Independent Networked Reconfiguration of Software and Hardware

Development of a Design Framework for Platform-Independent Networked Reconfiguration of Software and Hardware Development of a Design Framework for Platform-Independent Networked Reconfiguration of Software and Hardware Yajun Ha 12, Bingfeng Mei 12, Patrick Schaumont 1, Serge Vernalde 1, Rudy Lauwereins 1, and

More information

Don t expect to be able to write and debug your code during the lab session.

Don t expect to be able to write and debug your code during the lab session. EECS150 Spring 2002 Lab 4 Verilog Simulation Mapping UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping

More information

Introduction to Field Programmable Gate Arrays

Introduction to Field Programmable Gate Arrays Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May 9 June 2007 Javier Serrano, CERN AB-CO-HT Outline Historical introduction.

More information

TROUTE: A Reconfigurability-aware FPGA Router

TROUTE: A Reconfigurability-aware FPGA Router TROUTE: A Reconfigurability-aware FPGA Router Karel Bruneel and Dirk Stroobandt Hardware and Embedded Systems Group, ELIS Dept., Ghent University, Sint-Pietersnieuwstraat 4, B-9000 Gent, Belgium {karel.bruneel;dirk.stroobandt}@ugent.be

More information

Advanced FPGA Design Methodologies with Xilinx Vivado

Advanced FPGA Design Methodologies with Xilinx Vivado Advanced FPGA Design Methodologies with Xilinx Vivado Alexander Jäger Computer Architecture Group Heidelberg University, Germany Abstract With shrinking feature sizes in the ASIC manufacturing technology,

More information

A Device-Controlled Dynamic Configuration Framework Supporting Heterogeneous Resource Management

A Device-Controlled Dynamic Configuration Framework Supporting Heterogeneous Resource Management A Device-Controlled Dynamic Configuration Framework Supporting Heterogeneous Resource Management H. Tan and R. F. DeMara Department of Electrical and Computer Engineering University of Central Florida

More information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic ECE 42/52 Rapid Prototyping with FPGAs Dr. Charlie Wang Department of Electrical and Computer Engineering University of Colorado at Colorado Springs Evolution of Implementation Technologies Discrete devices:

More information

A Stream-based Reconfigurable Router Prototype

A Stream-based Reconfigurable Router Prototype A Stream-based Reconfigurable Router Prototype David C. Lee, Scott J. Harper, Peter M. Athanas, and Scott F. Midkiff Bradley Department of Electrical and Computer Engineering Virginia Polytechnic Institute

More information

Chapter 5: ASICs Vs. PLDs

Chapter 5: ASICs Vs. PLDs Chapter 5: ASICs Vs. PLDs 5.1 Introduction A general definition of the term Application Specific Integrated Circuit (ASIC) is virtually every type of chip that is designed to perform a dedicated task.

More information

The Xilinx XC6200 chip, the software tools and the board development tools

The Xilinx XC6200 chip, the software tools and the board development tools The Xilinx XC6200 chip, the software tools and the board development tools What is an FPGA? Field Programmable Gate Array Fully programmable alternative to a customized chip Used to implement functions

More information

APPENDIX-A INTRODUCTION TO OrCAD PSPICE

APPENDIX-A INTRODUCTION TO OrCAD PSPICE 220 APPENDIX-A INTRODUCTION TO OrCAD PSPICE 221 APPENDIX-A INTRODUCTION TO OrCAD PSPICE 1.0 INTRODUCTION Computer aided circuit analysis provides additional information about the circuit performance that

More information

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Best Practices for Incremental Compilation Partitions and Floorplan Assignments Best Practices for Incremental Compilation Partitions and Floorplan Assignments December 2007, ver. 1.0 Application Note 470 Introduction The Quartus II incremental compilation feature allows you to partition

More information

FPGAs: FAST TRACK TO DSP

FPGAs: FAST TRACK TO DSP FPGAs: FAST TRACK TO DSP Revised February 2009 ABSRACT: Given the prevalence of digital signal processing in a variety of industry segments, several implementation solutions are available depending on

More information

Performance Imrovement of a Navigataion System Using Partial Reconfiguration

Performance Imrovement of a Navigataion System Using Partial Reconfiguration Performance Imrovement of a Navigataion System Using Partial Reconfiguration S.S.Shriramwar 1, Dr. N.K.Choudhari 2 1 Priyadarshini College of Engineering, R.T.M. Nagpur Unversity,Nagpur, sshriramwar@yahoo.com

More information

An automatic tool flow for the combined implementation of multi-mode circuits

An automatic tool flow for the combined implementation of multi-mode circuits An automatic tool flow for the combined implementation of multi-mode circuits Brahim Al Farisi, Karel Bruneel, João M. P. Cardoso and Dirk Stroobandt Ghent University, ELIS Department Sint-Pietersnieuwstraat

More information

System-on Solution from Altera and Xilinx

System-on Solution from Altera and Xilinx System-on on-a-programmable-chip Solution from Altera and Xilinx Xun Yang VLSI CAD Lab, Computer Science Department, UCLA FPGAs with Embedded Microprocessors Combination of embedded processors and programmable

More information

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes Presented at Design Automation Conference (DAC) San Francisco, CA, June 4, 2012. Presented by Chuck Cruse FPGA Hardware

More information

BitMaT - Bitstream Manipulation Tool for Xilinx FPGAs

BitMaT - Bitstream Manipulation Tool for Xilinx FPGAs BitMaT - Bitstream Manipulation Tool for Xilinx FPGAs Casey J Morford Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements

More information

Partially Reconfigurable Cores for Xilinx Virtex

Partially Reconfigurable Cores for Xilinx Virtex Author s copy Partially Reconfigurable Cores for Xilinx Virtex Matthias Dyer, Christian Plessl, and Marco Platzner Computer Engineering and Networks Lab, Swiss Federal Institute of Technology, ETH Zurich,

More information

Chapter 9: Integration of Full ASIP and its FPGA Implementation

Chapter 9: Integration of Full ASIP and its FPGA Implementation Chapter 9: Integration of Full ASIP and its FPGA Implementation 9.1 Introduction A top-level module has been created for the ASIP in VHDL in which all the blocks have been instantiated at the Register

More information

Automated Extraction of Physical Hierarchies for Performance Improvement on Programmable Logic Devices

Automated Extraction of Physical Hierarchies for Performance Improvement on Programmable Logic Devices Automated Extraction of Physical Hierarchies for Performance Improvement on Programmable Logic Devices Deshanand P. Singh Altera Corporation dsingh@altera.com Terry P. Borer Altera Corporation tborer@altera.com

More information

A Toolkit for Rapid FPGA System Deployment

A Toolkit for Rapid FPGA System Deployment A Toolkit for Rapid FPGA System Deployment Umang K. Parekh Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the

More information

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function. FPGA Logic block of an FPGA can be configured in such a way that it can provide functionality as simple as that of transistor or as complex as that of a microprocessor. It can used to implement different

More information

Xilinx ASMBL Architecture

Xilinx ASMBL Architecture FPGA Structure Xilinx ASMBL Architecture Design Flow Synthesis: HDL to FPGA primitives Translate: FPGA Primitives to FPGA Slice components Map: Packing of Slice components into Slices, placement of Slices

More information

Spiral 2-8. Cell Layout

Spiral 2-8. Cell Layout 2-8.1 Spiral 2-8 Cell Layout 2-8.2 Learning Outcomes I understand how a digital circuit is composed of layers of materials forming transistors and wires I understand how each layer is expressed as geometric

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2017 1 Topics 1. Programmable logic

More information

A Methodology for Energy Efficient FPGA Designs Using Malleable Algorithms

A Methodology for Energy Efficient FPGA Designs Using Malleable Algorithms A Methodology for Energy Efficient FPGA Designs Using Malleable Algorithms Jingzhao Ou and Viktor K. Prasanna Department of Electrical Engineering, University of Southern California Los Angeles, California,

More information

Efficient Self-Reconfigurable Implementations Using On-Chip Memory

Efficient Self-Reconfigurable Implementations Using On-Chip Memory 10th International Conference on Field Programmable Logic and Applications, August 2000. Efficient Self-Reconfigurable Implementations Using On-Chip Memory Sameer Wadhwa and Andreas Dandalis University

More information

Comparison of pipelined IEEE-754 standard floating point multiplier with unpipelined multiplier

Comparison of pipelined IEEE-754 standard floating point multiplier with unpipelined multiplier Journal of Scientific & Industrial Research Vol. 65, November 2006, pp. 900-904 Comparison of pipelined IEEE-754 standard floating point multiplier with unpipelined multiplier Kavita Khare 1, *, R P Singh

More information

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Digital Design Methodology (Revisited) Design Methodology: Big Picture Digital Design Methodology (Revisited) Design Methodology Design Specification Verification Synthesis Technology Options Full Custom VLSI Standard Cell ASIC FPGA CS 150 Fall 2005 - Lec #25 Design Methodology

More information

A Methodology and Tool Framework for Supporting Rapid Exploration of Memory Hierarchies in FPGAs

A Methodology and Tool Framework for Supporting Rapid Exploration of Memory Hierarchies in FPGAs A Methodology and Tool Framework for Supporting Rapid Exploration of Memory Hierarchies in FPGAs Harrys Sidiropoulos, Kostas Siozios and Dimitrios Soudris School of Electrical & Computer Engineering National

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION CHAPTER 1 INTRODUCTION Rapid advances in integrated circuit technology have made it possible to fabricate digital circuits with large number of devices on a single chip. The advantages of integrated circuits

More information

High Level, high speed FPGA programming

High Level, high speed FPGA programming Opportunity: FPAs High Level, high speed FPA programming Wim Bohm, Bruce Draper, Ross Beveridge, Charlie Ross, Monica Chawathe Colorado State University Reconfigurable Computing technology High speed at

More information

Field Programmable Gate Array (FPGA)

Field Programmable Gate Array (FPGA) Field Programmable Gate Array (FPGA) Lecturer: Krébesz, Tamas 1 FPGA in general Reprogrammable Si chip Invented in 1985 by Ross Freeman (Xilinx inc.) Combines the advantages of ASIC and uc-based systems

More information

Embedded Floating-Point Units in FPGAs

Embedded Floating-Point Units in FPGAs Embedded Floating-Point Units in FPGAs Michael J. Beauchamp Scott Hauck Keith D. Underwood K. Scott Hemmert University of Washington Sandia National Laboratories* Dept. of Electrical Engineering Scalable

More information

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

Digital Design Methodology

Digital Design Methodology Digital Design Methodology Prof. Soo-Ik Chae Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008, John Wiley 1-1 Digital Design Methodology (Added) Design Methodology Design Specification

More information

Cover TBD. intel Quartus prime Design software

Cover TBD. intel Quartus prime Design software Cover TBD intel Quartus prime Design software Fastest Path to Your Design The Intel Quartus Prime software is revolutionary in performance and productivity for FPGA, CPLD, and SoC designs, providing a

More information

Improving Reconfiguration Speed for Dynamic Circuit Specialization using Placement Constraints

Improving Reconfiguration Speed for Dynamic Circuit Specialization using Placement Constraints Improving Reconfiguration Speed for Dynamic Circuit Specialization using Placement Constraints Amit Kulkarni, Tom Davidson, Karel Heyse, and Dirk Stroobandt ELIS department, Computer Systems Lab, Ghent

More information

Development of tools supporting. MEANDER Design Framework

Development of tools supporting. MEANDER Design Framework Development of tools supporting FPGA reconfigurable hardware MEANDER Design Framework Presentation Outline Current state of academic design tools Proposed design flow Proposed graphical user interface

More information

Placement Algorithm for FPGA Circuits

Placement Algorithm for FPGA Circuits Placement Algorithm for FPGA Circuits ZOLTAN BARUCH, OCTAVIAN CREŢ, KALMAN PUSZTAI Computer Science Department, Technical University of Cluj-Napoca, 26, Bariţiu St., 3400 Cluj-Napoca, Romania {Zoltan.Baruch,

More information

MAXIMIZING THE REUSE OF ROUTING RESOURCES IN A RECONFIGURATION-AWARE CONNECTION ROUTER

MAXIMIZING THE REUSE OF ROUTING RESOURCES IN A RECONFIGURATION-AWARE CONNECTION ROUTER MAXIMIZING THE REUSE OF ROUTING RESOURCES IN A RECONFIGURATION-AWARE CONNECTION ROUTER Elias Vansteenkiste, Karel Bruneel and Dirk Stroobandt Department of Electronics and Information Systems Ghent University

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

The nextpnr FOSS FPGA place-and-route tool. Clifford Wolf Symbiotic EDA

The nextpnr FOSS FPGA place-and-route tool. Clifford Wolf Symbiotic EDA The nextpnr FOSS FPGA place-and-route tool Clifford Wolf Symbiotic EDA FOSS FPGA PnR VPR (Versatile Place-and-Route) Over 20 years old (1997). Timing driven. Portable. Focuses more on architecture exploration

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

Effects of FPGA Architecture on FPGA Routing

Effects of FPGA Architecture on FPGA Routing Effects of FPGA Architecture on FPGA Routing Stephen Trimberger Xilinx, Inc. 2100 Logic Drive San Jose, CA 95124 USA steve@xilinx.com Abstract Although many traditional Mask Programmed Gate Array (MPGA)

More information

Soft-Core Embedded Processor-Based Built-In Self- Test of FPGAs: A Case Study

Soft-Core Embedded Processor-Based Built-In Self- Test of FPGAs: A Case Study Soft-Core Embedded Processor-Based Built-In Self- Test of FPGAs: A Case Study Bradley F. Dutton, Graduate Student Member, IEEE, and Charles E. Stroud, Fellow, IEEE Dept. of Electrical and Computer Engineering

More information

Cover TBD. intel Quartus prime Design software

Cover TBD. intel Quartus prime Design software Cover TBD intel Quartus prime Design software Fastest Path to Your Design The Intel Quartus Prime software is revolutionary in performance and productivity for FPGA, CPLD, and SoC designs, providing a

More information

High Level Abstractions for Implementation of Software Radios

High Level Abstractions for Implementation of Software Radios High Level Abstractions for Implementation of Software Radios J. B. Evans, Ed Komp, S. G. Mathen, and G. Minden Information and Telecommunication Technology Center University of Kansas, Lawrence, KS 66044-7541

More information

A Hardware / Software Co-Design System using Configurable Computing Technology

A Hardware / Software Co-Design System using Configurable Computing Technology A Hardware / Software Co-Design System using Configurable Computing Technology John Schewel Virtual Computer Corporation 6925 Canby Ave #103 Reseda, California, USA 91335 Abstract Virtual Computer Corporation

More information

Academic Clustering and Placement Tools for Modern Field-Programmable Gate Array Architectures

Academic Clustering and Placement Tools for Modern Field-Programmable Gate Array Architectures Academic Clustering and Placement Tools for Modern Field-Programmable Gate Array Architectures by Daniele G Paladino A thesis submitted in conformity with the requirements for the degree of Master of Applied

More information

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011 FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level

More information

Dynamic Hardware Plugins in an FPGA with Partial Run-time Reconfiguration

Dynamic Hardware Plugins in an FPGA with Partial Run-time Reconfiguration 24.2 Dynamic Hardware Plugins in an FPGA with Partial Run-time Reconfiguration Edson L. Horta, Universidade de San Pãulo Escola Politécnica - LSI San Pãulo, SP, Brazil edson-horta@ieee.org John W. Lockwood,

More information

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification. 1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus

More information

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language) Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997. Bibliography Books on software reuse: 1. 2. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, 1997. Practical Software Reuse, Donald J. Reifer, Wiley, 1997. Formal specification and verification:

More information

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems FPGA-Based Rapid Prototyping of Digital Signal Processing Systems Kevin Banovic, Mohammed A. S. Khalid, and Esam Abdel-Raheem Presented By Kevin Banovic July 29, 2005 To be presented at the 48 th Midwest

More information

101-1 Under-Graduate Project Digital IC Design Flow

101-1 Under-Graduate Project Digital IC Design Flow 101-1 Under-Graduate Project Digital IC Design Flow Speaker: Ming-Chun Hsiao Adviser: Prof. An-Yeu Wu Date: 2012/9/25 ACCESS IC LAB Outline Introduction to Integrated Circuit IC Design Flow Verilog HDL

More information

An Efficient Implementation of Floating Point Multiplier

An Efficient Implementation of Floating Point Multiplier An Efficient Implementation of Floating Point Multiplier Mohamed Al-Ashrafy Mentor Graphics Mohamed_Samy@Mentor.com Ashraf Salem Mentor Graphics Ashraf_Salem@Mentor.com Wagdy Anis Communications and Electronics

More information

Programmable Logic Devices HDL-Based Design Flows CMPE 415

Programmable Logic Devices HDL-Based Design Flows CMPE 415 HDL-Based Design Flows: ASIC Toward the end of the 80s, it became difficult to use schematic-based ASIC flows to deal with the size and complexity of >5K or more gates. HDLs were introduced to deal with

More information

Physical Design For FPGAs Rajeev Jayaraman Xilinx Inc Logic Drive San Jose, CA 95131, USA

Physical Design For FPGAs Rajeev Jayaraman Xilinx Inc Logic Drive San Jose, CA 95131, USA Physical Design For FPGAs Rajeev Jayaraman Xilinx Inc. 2100 Logic Drive San Jose, CA 95131, USA rajeev.jayaraman@xilinx.com ABSTRACT FPGAs have been growing at a rapid rate in the past few years. Their

More information

An Analysis of Delay Based PUF Implementations on FPGA

An Analysis of Delay Based PUF Implementations on FPGA An Analysis of Delay Based PUF Implementations on FPGA Sergey Morozov, Abhranil Maiti, and Patrick Schaumont Virginia Tech, Blacksburg, VA 24061, USA {morozovs,abhranil,schaum}@vt.edu Abstract. Physical

More information

Leso Martin, Musil Tomáš

Leso Martin, Musil Tomáš SAFETY CORE APPROACH FOR THE SYSTEM WITH HIGH DEMANDS FOR A SAFETY AND RELIABILITY DESIGN IN A PARTIALLY DYNAMICALLY RECON- FIGURABLE FIELD-PROGRAMMABLE GATE ARRAY (FPGA) Leso Martin, Musil Tomáš Abstract:

More information

An FPGA Project for use in a Digital Logic Course

An FPGA Project for use in a Digital Logic Course Session 3226 An FPGA Project for use in a Digital Logic Course Daniel C. Gray, Thomas D. Wagner United States Military Academy Abstract The Digital Computer Logic Course offered at the United States Military

More information

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline CPE/EE 422/522 Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices Dr. Rhonda Kay Gaede UAH Outline Introduction Field-Programmable Gate Arrays Virtex Virtex-E, Virtex-II, and Virtex-II

More information

A Library of Parameterized Floating-point Modules and Their Use

A Library of Parameterized Floating-point Modules and Their Use A Library of Parameterized Floating-point Modules and Their Use Pavle Belanović and Miriam Leeser Department of Electrical and Computer Engineering Northeastern University Boston, MA, 02115, USA {pbelanov,mel}@ece.neu.edu

More information

On pin-to-wire routing in FPGAs. Niyati Shah

On pin-to-wire routing in FPGAs. Niyati Shah On pin-to-wire routing in FPGAs by Niyati Shah A thesis submitted in conformity with the requirements for the degree of Master of Applied Science and Engineering Graduate Department of Electrical & Computer

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2016 1 Topics 1. Programmable logic

More information

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions Logic Synthesis Overview Design flow Principles of logic synthesis Logic Synthesis with the common tools Conclusions 2 System Design Flow Electronic System Level (ESL) flow System C TLM, Verification,

More information