Muutke küpsiste eelistusi

Learning FPGAs: Digital Design for Beginners with Mojo and Lucid HDL [Pehme köide]

  • Formaat: Paperback / softback, 236 pages, kõrgus x laius x paksus: 250x150x15 mm, kaal: 666 g
  • Ilmumisaeg: 25-Aug-2017
  • Kirjastus: O'Reilly Media
  • ISBN-10: 1491965495
  • ISBN-13: 9781491965498
Teised raamatud teemal:
  • Pehme köide
  • Hind: 48,27 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 56,79 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 236 pages, kõrgus x laius x paksus: 250x150x15 mm, kaal: 666 g
  • Ilmumisaeg: 25-Aug-2017
  • Kirjastus: O'Reilly Media
  • ISBN-10: 1491965495
  • ISBN-13: 9781491965498
Teised raamatud teemal:

Learn how to design digital circuits with FPGAs, the devices that reconfigure themselves to become the very hardware circuits you program. In this concise ebook, author Justin Rajewski teaches you hands-on how to create your first FPGA project.

While FPGAs (Field Programmable Gate Arrays) and microcontrollers such as Arduino and Raspberry Pi are often compared, FPGAs are ideal for projects that can be broken down into parallel stages, need to operate at high speeds with low latency, or need custom logic not otherwise available. If you understand the basics of electricity as well as binary, hexadecimal, and decimal number systems, you’re ready to start your journey toward digital hardware mastery.

  • Learn how hardware designs are broken into modules, comparable to functions in a software program
  • Set up your environment by installing Xilinx ISE and the Mojo IDE
  • Build a high level understanding of digital designs that can be implemented on an FPGA
  • Build your project with Lucid, a hardware description language with syntax similar to C/C++, Verilog, and Java
  • Use the Mojo IDE to design, build, and load your FPGA designs
Preface vii
1 Introduction
1(18)
The Mojo
1(2)
FPGAs Versus Microcontrollers: A Comparison
3(4)
Setting Up Your Environment
7(12)
Installing ISE
8(6)
Installing the Mojo IDE
14(1)
Mojo IDE Settings
15(4)
2 Your First FPGA Project
19(14)
Creating a New Project
19(2)
Understanding Modules
21(1)
Representing Values
22(1)
Using Always Blocks
23(2)
Connecting the Button
25(1)
Building Your Project
26(1)
Loading Your Project
27(3)
Some Notes on Hardware
30(1)
Duplication
30(1)
Array Indexing
30(1)
Always Block Priority
31(2)
3 Combinational Logic
33(22)
IO Shield
33(3)
Logic Functions
36(3)
Bitwise Operators
39(1)
Reduction Operators
40(1)
Math
41(3)
Common Subcircuits
44(11)
Multiplexers
44(2)
Decoders
46(1)
Encoders
47(1)
Arbiters
47(3)
Decoder, Encoder, and Arbiter Example
50(5)
4 Sequential Logic
55(20)
Feedback Loops and Flip-Flops
56(5)
Clocks
57(4)
Timing and Metastability
61(14)
External Inputs
66(1)
Add the Components
67(2)
Instantiating a Module
69(2)
Checking Timing
71(1)
Bouncy Buttons and Edges
72(1)
Running Total
73(2)
5 Seven-Segment LED Displays and Finite-State Machines
75(16)
Single Digit
76(3)
Lookup Tables
79(4)
Binary to Decimal
83(4)
The Finite-State Machine
87(1)
The Stopwatch
87(4)
6 Hello AVR
91(10)
The AVR Interface
91(1)
Sending and Receiving Data
92(1)
ROMs
92(1)
The Greeter
93(2)
Getting Personal with RAM
95(6)
7 Mixing Colors with an RGB LED
101(16)
External I/O Constraints
103(2)
Getting Fancy with PWM
105(6)
Register Interface
111(6)
8 Analog Inputs
117(4)
The AVR Interface
117(2)
All the Channels
119(2)
9 A Basic Processor
121(12)
What Is a Processor?
122(1)
Instruction Sets
122(1)
Memory
122(1)
Initial Design
123(2)
NOP
123(1)
LOAD and STORE
123(1)
SET
124(1)
LT and EQ
124(1)
BEQ and BNEQ
124(1)
The ALU
124(1)
The Program Counter
125(1)
The Processor
125(5)
The Program
128(2)
The Assembler
130(3)
10 FPGA Internals
133(12)
General Fabric and Routing Resources
133(2)
Special Primitives
135(10)
Block RAM (Memory)
135(5)
Math
140(1)
Clocking
140(3)
Special I/O Features
143(2)
11 Advanced Timing and Clock Domains
145(10)
Breaking Timing and Fixing It with Pipelining
145(5)
Crossing Clock Domains
150(5)
12 Sound Direction Detection: An Advanced Example
155(28)
Theory of Operation
156(6)
Implementation Overview
162(2)
Implementation
164(19)
PDM Microphones
164(4)
FFT
168(3)
CORDIC
171(3)
CAPTURE State
174(1)
FFT State
175(2)
DIFFERENCE State
177(3)
AGGREGATE State
180(3)
13 Lucid Reference
183(22)
Lucid Quick Reference
184(1)
Modules
185(10)
Parameter Lists
185(1)
Port Lists
186(1)
Module Body
187(8)
Expressions
195(6)
Signals and Constants
195(1)
Functions
196(1)
Groups
197(1)
Array Concatenation
197(1)
Array Duplication
197(1)
Array Builder
197(1)
Bitwise Invert
197(1)
Logical Invert
198(1)
Negate
198(1)
Multiply
198(1)
Divide
198(1)
Add and Subtract
198(1)
Bit Shifting
199(1)
Bitwise Operators
199(1)
Reduction Operators
199(1)
Comparison Operators
200(1)
Logical AND and OR
200(1)
Ternary Operator
200(1)
Literal Values
201(1)
Numbers
201(1)
Strings
201(1)
Global Blocks
201(1)
Array Size and Bit Selection
202(2)
Array Size
202(1)
Bit Selectors
203(1)
Comments
204(1)
A Full Modules and Proof 205(8)
Index 213
Justin Rajewski first got started with FPGAs over a summer internship with Northrop Grumman before his senior year of high school. Before this, a SparkFun blog post had piqued his interested in FPGAs, but he was frustrated with the lack of information available for beginners. After a few summers working with FPGAs as an intern, and some formal classes at Stanford University, Justin created the Mojo, an FPGA development board targeted specifically for beginners. He then launched a hugely successful Kickstarter for the Mojo. Justin continued to work on the Mojo and has even gone so far as to create an IDE with a new beginner-friendly language, Lucid.