Download presentation
Presentation is loading. Please wait.
Published byBennett Gaines Modified over 8 years ago
1
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Logic Design Process n Functional/ Non-functional requirements n Mapping into an FPGA n Hardware description languages n Physical design n Example: parity
2
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Functional requirements n Functionality. –Inputs/output –logic networks Combinational logic Primary inputs Primary outputs
3
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Non-functional requirements n Performance: –Clock speed is generally a primary requirement. n Size: –Determines manufacturing cost. n Power/energy: –Energy related to battery life, power related to heat. –Many digital systems are power- or energy-limited.
4
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Mapping into an FPGA n Must choose the FPGA: –Capacity. –Pinout/package type. –Maximum speed.
5
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Hardware description languages n Structural description: –A connection of components. n Functional description: –A set of Boolean formulas, state transitions, etc. n Simulation description: –A program designed for simulation. n Major languages: –Verilog. –VHDL. A NAND x
6
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Logic optimization n Must transform Boolean expressions into a form that can be implemented. –Use available primitives (gates). –Meet delay, size, energy/power requirements. n Logic gates implement expressions. –Must rewrite logic to use the expressions provided by the logic gates. n Maintain functionality while meeting non- functional requirements.
7
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Macros n Larger modules designed to fit into a particular FPGA. –Hard macro includes placement. –Soft macro does not include placement.
8
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Physical design n Placement: –Place logic components into FPGA fabric. n Routing: –Choose connection paths through the fabric. n Configuration generation: –Generate bits required to configure FPGA.
9
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Example: parity n Simple parity function: –P = a0 XOR a1 XOR a2 XOR a3. n Implement with Xilinx ISE.
10
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Xilinx ISE main screen Sources in project Processes for source Source window Output
11
FPGA-Based System Design Copyright 2004 Prentice Hall PTR New project
12
FPGA-Based System Design Copyright 2004 Prentice Hall PTR New project info
13
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Create HDL file
14
FPGA-Based System Design Copyright 2004 Prentice Hall PTR I/O description
15
FPGA-Based System Design Copyright 2004 Prentice Hall PTR I/O info
16
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Empty Verilog description module parity(a,p); input [31:0] a; output p; endmodule
17
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Verilog with functional code module parity(a,p); input [31:0] a; output p; assign p = ^a; endmodule
18
FPGA-Based System Design Copyright 2004 Prentice Hall PTR RTL schematic: top-level
19
FPGA-Based System Design Copyright 2004 Prentice Hall PTR RTL model: implementation
20
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Example: simulation n Apply stimulus/test vectors. n Look at response/output vectors. n Can’t exhaustively simulate but we can exercise the module. n Simulation before synthesis is faster and easier than simulating the mapped design. –Sometimes want to simulate the mapped design.
21
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Testbench testbench Unit Under Test (UUT) Stimulus Response
22
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Automatically-created testbench module parity_testbench_v_tf(); // DATE: 11:48:13 11/07/2003 // MODULE: parity // DESIGN: parity // FILENAME: testbench.v // PROJECT: parity // VERSION: // Inputs reg [31:0] a; // Outputs wire p; // Bidirs // Instantiate the UUT parity uut (.a(a),.p(p) ); // Initialize Inputs ‘ifdef auto_init initial begin a = 0; end ‘endif endmodule
23
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Test vector application code initial begin $monitor("a = %b, parity=%b\n",a,p); #10 a = 0; #10 a = 1; #10 a = 2’b10; #10 a = 2’b11; #10 a = 3’b100; #10 a = 3’b101; #10 a = 3’b110; #10 a = 3’b111; … #10 a = 1024; #10 a = 1025; #10 a = 16’b1010101010101010; #10 a = 17’b11010101010101010; #10 a = 17’b10010101010101010; #10 a = 32’b10101010101010101010101010101010; #10 a = 32’b11101010101010101010101010101010; #10 a = 32’b10101010101010101010101010101011; $finish; end
24
FPGA-Based System Design Copyright 2004 Prentice Hall PTR Project summary
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.