EE121 Foundation Review Session Page 1 of 16 Winter Learning to Love Xilinx Foundation 4.1i in 40 Easy Steps

Similar documents
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS 150 Spring 2000

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

Digital Electronics & Computer Engineering (E85)

CCE 3202 Advanced Digital System Design

EE261 Computer Project 1: Using Mentor Graphics for Digital Simulation

Intro to Multisim & Ultiboard

Programmable Logic Design I

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015

eproduct Designer A Simple Design and Simulation Tutorial

Xilinx Design Tools: Foundation Series Version 3.1i

Step 1: Downloading the source files

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16

Lab 9 Introduction to Multisim & Ultiboard

EECS 140 Laboratory Exercise 4 3-to-11 Counter Implementation

Programmable Logic Design Techniques I

Lab 6 Debugging. Objective. Introduction. Prelab

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16

Lesson 17: Building a Hierarchical Design

Introduction to WebPACK 4.1 for CPLDs. Using Xilinx WebPACK Software to Create CPLD Designs for the XS95 Board

TUTORIAL #2 HIERARCHICAL DESIGNS AND TEST FIXTURES

EET2141 Project 2: Binary Adder Using Xilinx 7.1i Due Friday April 25

CS2204 DIGITAL LOGIC & STATE MACHINE DESIGN SPRING 2011

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly!

CS/EE 3710 Computer Architecture Lab Checkpoint #2 Datapath Infrastructure

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Programmable Logic Design I

Digital Electronics & Computer Engineering (E85)

Getting Started with Xilinx Design Tools and the XS 40 Prototyping Platform-- a User s Guide *

ENGR 3410: Lab #1 MIPS 32-bit Register File

2 nd Year Laboratory. Experiment: FPGA Design with Verilog. Department of Electrical & Electronic Engineering. Imperial College London.

Laboratory Assignment #4 Debugging in Eclipse CDT 1

Introduction to Computer Engineering (E114)

Introduction to WebPACK 4.1 for FPGAs. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

EE 1315: DIGITAL LOGIC LAB EE Dept, UMD

Xilinx Tutorial Basic Walk-through

Lesson 19: Processing a Hierarchical Design

Introduction. About this tutorial. How to use this tutorial

Introduction to WebPACK 6.3. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

UNIVERSITY OF CALIFORNIA College of Engineering Department of Electrical Engineering and Computer Sciences Lab #2: Layout and Simulation

ENGR 3410: MP #1 MIPS 32-bit Register File

Introduction to WebPACK 6.1. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

1 Discussion. 2 Pre-Lab

Note. The above image and many others are courtesy of - this is a wonderful resource for designing circuits.

Physics 364, Fall 2012, reading due your answers to before the end of Wednesday s lab.

Creating a PCB Design with OrCAD PCB Editor

Quartus II Tutorial. September 10, 2014 Quartus II Version 14.0

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17

Physics 364, Fall 2014, reading due your answers to by 11pm on Sunday

Tutorial: Pattern Wizard

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

EE 101 Homework 4 Redekopp Name: Due: See Blackboard

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

Interrupts. by Rahul Patel, Assistant Professor, EC Dept., Sankalchand Patel College of Engg.,Visnagar

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

Lab 1: FPGA Physical Layout

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

Complete Tutorial (Includes Schematic & Layout)

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 11/01/17

Exercise 1. Section 2. Working in Capture

NIOS CPU Based Embedded Computer System on Programmable Chip

Introduction...2 Prerequisites...2 What is a Global Net?...2 Net Scope...2 Defining Global Nets...3 Establishing Connectivity...5 Propagation...

Xilinx Schematic Entry Tutorial

Tutorial for Verilog Synthesis Lab (Part 2)

How to Get Started. Figure 3

The board is powered by the USB connection, so to turn it on or off you plug it in or unplug it, respectively.

Introduction to WebPACK 8.1. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

CSE370 TUTORIAL 3 - INTRODUCTION TO USING VERILOG IN ACTIVE-HDL

Programmable machines

Tutorial: Working with the Xilinx tools 14.4

Introduction to WebPACK 5.2 for FPGAs. Using Xilinx WebPACK Software to Create FPGA Designs for the XSB-300E Board

ARM 64-bit Register File

ECSE-323 Digital System Design. Lab #1 Using the Altera Quartus II Software Fall 2008

Physics 623. FPGA I Construction of a Synchronous Counter Aug. 4, 2008

Lab 2: Introduction to Verilog HDL and Quartus

ENGR 3410: MP #1 MIPS 32-bit Register File

SILVACO. An Intuitive Front-End to Effective and Efficient Schematic Capture Design INSIDE. Introduction. Concepts of Scholar Schematic Capture

COE 200 LABORATORY MANUAL

ENGR 40M Project 3c: Switch debouncing

ECE241 Digital Systems Lab 2 Altera Software Tutorial and Use

Using XILINX WebPACK Software to Create CPLD Designs

Quartus II Version 14.0 Tutorial Created September 10, 2014; Last Updated January 9, 2017

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

Guidelines for Using LogicCircuit with the Nand2Tetris HDL Tool Suite John K. Bennett January 2019

CSE 141L Computer Architecture Lab Fall Lecture 3

EECS 140 Laboratory Exercise 5 Prime Number Recognition

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial

COS 116 The Computational Universe Laboratory 7: Digital Logic I

A B A+B

Practical 4: RTC on FPGA

Lesson 5: Verifying RAMs with the Fluke 9010A Version 1.03

COS 116 The Computational Universe Laboratory 8: Digital Logic II

1.7 Limit of a Function

Lesson 9: Processing a Schematic Design

E85: Digital Design and Computer Engineering Lab 2: FPGA Tools and Combinatorial Logic Design

Digital Systems EEE4084F FPGA Introduction Verilog and Xilinx ISE [30 Marks]

Physics 623. Programmable Gate Array Experiment Nov. 30, 2006

CSEE W4840 Embedded System Design Lab 1

TUTORIAL SESSION Technical Group Hoda Najafi & Sunita Bhide

Transcription:

EE121 Foundation Review Session Page 1 of 16 Learning to Love Xilinx Foundation 4.1i in 40 Easy Steps You all know how to design and implement a digital circuit with Foundation. But sometimes going from a good design to a working bit file is more stressful than it needs to be. Here are some steps you can take to make the process a little more pleasant. Ask a TA if you need more details. Essentials 1. Any two nets on the same level that have the same name are the same logical net, even if they are not explicitly wired together. This has some imp ortant consequences: * You do not have to draw a wire to connect two symbol pins. You can just give the same name to the nets connected to these pins. Figures 1 and 2 are equivalent, but Figure 2 is easier to understand and debug. Figure 1 Figure 2 * Two nets on the same level of hierarchy that you want to be distinct will actually be connected if you give them the same name. The circuit in Figure 3 will not work because both the OR gate and the AND gate drive the same net. Figure 3 2. Only have one schematic listed in the Project Manager: the highest-level schematic in your project. If you have two schematics listed, they will be on the same level of hierarchy and Foundation will treat them as if they were two parts of the same schematic.

EE121 Foundation Review Session Page 2 of 16 Figure 4 3. By default, the simulator will load the netlist of the schematic(s) in your Project Manager window. To simulate a macro by itself, choose Tools ->Simulate Current Macro from the Schematic Editor Figure 5 or choose File->Simulate Single Component from the Logic Simulator and choose the macro that you want to simulate. Figure 6 4. If you want to look at signals deep within the hierarchy in simulation, just string the reference names together, separated by slashes, in your script. For example, if we are interested in a signal X inside a macro with reference H1; and H1 is inside macro H3, H3 is inside H5, and H5 is in the highest-level schematic; then we can refer to X in our script as H5/H3/H1/X.

EE121 Foundation Review Session Page 3 of 16 5. The macro and the schematic from which the macro is derived are different. Always open the macro, either with the H hierarchy toolbar or with File ->Open Macro. If you open and edit the schematic instead, the macro will not reflect your changes. 6. Before you declare a macro done, you should always perform an integrity test on the current sheet. Look at all the warnings in the Project Manager window and correct them if necessary. You should also test your entire design with Options->Integrity Test. Figure 7 Figure 8 Most warnings are serious matters. A few are not. The Integrity Test will warn you if you haven t connected every output of a symbol, but that s often not a problem. For example, if you only need to use four of the eight outputs of a 3-8 decoder, you could connect nets only to the four you intend to use and leave the others disconnected. Never leave any inputs disconnected. The warning about hierarchy connectors on top level schematic detected is OK only if you are about to make the schematic you tested into a macro.

EE121 Foundation Review Session Page 4 of 16 7. What do all the components in the Spartan2 library do? Find out in the Libraries Guide, (http://toolbox.xilinx.com/docsan/xilinx4/manuals.htm) a link to which is in the Resources section of the class web page. Figure 9 8. Don t copy your project in Windows. Archive it or use the Copy Project command.

EE121 Foundation Review Session Page 5 of 16 Figure 10 Useful 9. Use the Draw Bus Tap tool to number and draw bus taps automatically. All you need to do is click the source bus, then click the pins to which each consecutive bus tap should be attached. The software does all the drawing and labeling for you. You can use the arrow keys to switch among bits of the tap. Figure 11 10. Use the Add Net or Bus Name toolbar in increment mode to increment net names automatically. Enter the name of the net corresponding to the lowest bit and click Repeat. Then click the nets your want to label in order of increasing bit number.

EE121 Foundation Review Session Page 6 of 16 Figure 12 Figure 13 11. Make sure that you have labeled all your bus taps. The arrangement in Figure 14 won t work. Figure 14 12. If the schematic looks weird, refresh the display by striking the F10 key. 13. The buffers and pads (Figure 14) are I/O for the chip. Hierarchy connectors (Figure 15) are the I/O for macros. Figure 15

EE121 Foundation Review Session Page 7 of 16 Figure 16 14. Read the report files when implementation doesn t work (or even when it does). Figure 17 15. Use the View->Show All References to see the names of all your components. This will make it easier to find components in error and warning reports.

EE121 Foundation Review Session Page 8 of 16 Figure 18 16. Every net has a name, whether or not you explicitly name it. Select the net and look at the bottom of the screen to find out its name. Better yet, give it a name yourself. Figure 19 17. The name of the chip output is specified by the signal between the OBUF and the OPAD. Likewise for chip inputs and IBUFs and IPADs. In Figure18, F_OUT is the name of the signal that connects to the pin and the name you will find in your PAD report file. Figure 20 18. Assign pin numbers to every OPAD and IPAD. If you don t, Xilinx will do it for you.

EE121 Foundation Review Session Page 9 of 16 Figure 21 Figure 22 19. Beware of disconnected nets! Disconnected single nets will usually have blue dots, but not always. Disconnected busses will never have blue dots even if they are disconnected. Move components around to make sure the connected nets move with them. The components in both Figures 23 and 24 are dis connected, although you can not tell this from visual inspection of Figure 24. Disconnected nets often occur when you replace one macro with another. The Replace Symbol command (right-click on the component, then choose Replace Symbol) is less likely to lead to disconnected nets than other methods of replacing symbols, but only if the symbol interface of the new macro is the same as that of the old one.

EE121 Foundation Review Session Page 10 of 16 Figure 23 Figure 24 20. If Foundation complains about no permissions or file does not exist while archiving your project, you have to reboot. It s a bug and we know of no other solution. 21. Update the simulator if you make a change in the schematic. You can t change the schematic in the middle of simulation. The safest thing to do if you need to change your schematic is to close and restart the simulator. 22. Use the vector script command to put things in the right direction. vector x x[3:0] and vector x x[0:3] arrange the bits in opposite orders. This doesn t change your schematic, but it does change the way your assign statements and simulator output appear. 23. Use the clock command to simulate clocks. clock CLK 0 1 makes the clock signal toggle from 0 to 1 after one simulation step, then from 1 to 0 after another simulation step, ad infinitum. clock CLK2 0 0 1 1 would give CLK2 twice the period of CLK. 24. Simulating in timing mode is a good idea since your components will have non-zero delay, as they do in real life. But before you place and route your design, the delays the simulator uses in timing mode will only be wild guesses. 25. Don t confuse your projects with those of others. If you re working on the lab or cluster computers, archive your project, save it on your network drive, and delete it from the local hard drive. In addition, give it a unique name; for example, George W. Bush would name his Lab 3 gwb_lab3 so it would not be confused with Tom Daschle s Lab 3. Geeky 26. Change the orientation of a symbol. Use Ctl-M to mirror, (Figure 25) Ctl-L to rotate. (Figure 26) Figure 25

EE121 Foundation Review Session Page 11 of 16 Figure 26 27. Use complex busses selectively to make busses that are conglomerations of different signals. Figure 27 28. Use the $ARRAY parameter to create multiple instances of the same component. Although this works, the display doesn t necessarily reflect your changes very accurately.

EE121 Foundation Review Session Page 12 of 16 Figure 28 Figure 29 29. Better yet, use the Core Generator to generate all kinds of components. (But remember that you have to make your components in Lab 3.) Be sure to set your Design Entry environment to Schematic- Foundation and your Target Architecture to Spartan2. The Core Generator can be very useful, but its uses are beyond the scope of this document. Feel free to play around with it and see what it offers.

EE121 Foundation Review Session Page 13 of 16 Figure 30 30. Find components fast by typing their name in the SC Symbols window.

EE121 Foundation Review Session Page 14 of 16 Figure 31 31. The left-most bit of a bus is the most significant, regardless of whether it is the highest bit or not. Simplify your life by ordering busses consistently. 32. Busses are connected to symbol pins in a left-to-right order. For example, in Figure 32, INT[15:8] is connected to FF2\D[7:0]. INT[7:0] is not connected to anything. What a mess! It s best always to have the same number of bits on both sides. Figure 32 33. Beware bus names that end with a digit. For example, if you had a DATA1[10:0] and a DATA[10:0], then DATA10 would exist twice. 34. Use File->Table Setup to identify the schematic as yours. (We don t care whether you do this or not.)

EE121 Foundation Review Session Page 15 of 16 Figure 33 35. Use the autoroute feature (Edit->Autorouting Table) if you think it s worth it. 36. If the simulator tells you that you have a combinational feedback error, this probably means that a net that is a function of an output of a combinational logic element feeds back into an input of the same element. Look for naming errors. In a few cases, the simulator has generated a combinational feedback error with no apparent reason, and students have solved the problem by replacing their logic with equivalent components. 37. Use the Project Libraries Window (Tools ->Project Libraries) and the Library Manager to manipulate the contents of your libraries. Generally, EE121 students have not used this very much. Figure 34 38. Using the symbol editor to change the symbols corresponding to your macros. Right-click on the component and choose Symbol Editor. You can do all sorts of things, like move pins around, make bus I/O pins thick, and place dots on active-low pins.

EE121 Foundation Review Session Page 16 of 16 Figure 35 39. I/O buffers and pads can go inside macros; they don t have to be on the highest-level schematic. (But they should be in Lab 3 because that s the way the skeleton file is.) 40. IFDs and OFDs replace IBUFs and OBUFs. You can register your inputs and outputs by replacing OBUFs and IBUFs with IFDs and OFDs.