Digitalteknik EIT020 Lecture 15: Design av digitala kretsar November 2, 2015
Digitalteknikens kopplingar mot andra områden Mjukvara Hårdvara Datorteknik Kretskonstruktion Digitalteknik Elektronik Figure:, Digitalteknik L15:2,
DEL 1 - Datorers uppbyggnad Kurser som kommer: Datorteknik, Datorarkitektur,... Beteendet bestäms i mjukvara Byggblock: multiplexer, adressavkodare, ROM, ALU Hur sätter vi samman byggblocken för att få något som liknar en enkel dator?, Digitalteknik L15:4,
ALU exempel Xn 1,..., X1, X0 Yn 1,..., Y1, Y0 Flaggor O, C o Aritmetisk enhet AU Logisk enhet LU Styrsignaler S 2, S 1, S 0 C i MUX Flaggor Z, P, S U n 1,... U 1, U 0, Digitalteknik L15:5,
ALU input/output In: X n 1,... X 1, X 0 samt Y n 1,... Y 1, Y 0. Ut: U = U n 1,... U 1, U 0. In: Styrsignaler S 2, S 1, S 0 som tre styrsignaler. In: C i som svarar mot carry in. ALU:n ger även utsignaler i form av aggor som indikerar speciella händelser vid uträknandet av den valda funktionen. O sätts när AU genererar en overow; C o är en carry bit; Z sätts om U = 0; P ger pariteten av U samt S som sätts om U är negativt., Digitalteknik L15:6,
En enkel CPU BUSS Register X Register Y Instruktionsregister IR X Y ALU S2, S1, S0, Ci Instruktions avkodare Z, P, S, O, U Co Flaggregister Ackumulator U Programräknare PC BUSS, Digitalteknik L15:8,
Register och buss Ett n-bitars register är n minneselement (D-vippor) som håller n bitar i minnet. Registret har n insignaler och n utsignaler samt minst en ytterligare insignal som kan användas för att ladda in insignalvärdet i minnet. Bussen är logiskt en multiplexer. Implementering: three-state utgång till en grind. Med en three-state utgång kan utsignalen vara 0, 1 eller "högohmig". Det sistnämnda innebär i digitaltekniskt sammanhang att vi har ett avbrott på utsignalen. Det nns då en insignal som styr huruvida utsignalen är högohmig eller inte. Detta innebär att vi kan koppla samman era utsignaler från olika enheter på en gemensam buss så länge alla utom en av dessa utsignaler är högohmiga., Digitalteknik L15:9,
CPU - funktion CPU:n kommunicerar med ett yttre minne och hämtar in instruktioner i form av instruktionens operationskod (ett bitmönster). När operationskoden för en instruktion kommer in till CPU:n via bussen läggs den i instruktionsregistret, IR. För att veta var i det yttre minnet som CPU:n ska hämta nästa instruktion, nns ett register som innehåller adressen till nuvarande instruktion. Det kallas för Programräknare, PC. När CPU:n är färdig med den nuvarande instruktionen kommer den att räkna upp programräknaren och sedan begära att få läsa minnet på den nya minnesadressen som programräknaren nu pekar på., Digitalteknik L15:10,
CPU - Instruktionsavkodaren Instruktionsavkodare genererar styrsignalerna till alla enheter i CPU:n, och även till enheter utanför CPU:n. Den läser först in nästa instruktion i instruktionsregistret. Beroende på vilken instruktion det är så genererar den styrsignaler för läs/skriv till register och minne samt eventuella styrsignaler till ALU:n. När den är klar ska programräknaren uppdateras och därefter läser instruktionsavkodaren in nästa instruktion och så fortsätter det., Digitalteknik L15:11,
En enkel dator CPU Central Processing Unit Minne ROM, RWM I/O In/Ut-enheter BUSS (Databuss, Adressbuss, Styrbuss) Bussen är uppdelad: adressbuss, där vi då lägger adressen till minnet; databuss som innehåller de dataord som läses in eller ut. styrbussen styr vilka enheter som ska vara aktiva på bussen. I/O modulen har register och/eller minne som CPU:n kan läsa eller skriva till och dessa register (minne) står i direkt anslutning till en fysisk I/O del., Digitalteknik L15:12,
Instruktioner - exempel bitmönster Instruktion Funktion 0000dddd LDX ladda register X med värde dddd. 0001dddd LDY ladda register Y med värde dddd. 0010dddd ADD addera X med Y, resultat i U. 0011dddd ADDC addera X, Y och bit C från statusreg, resultat i 0100dddd DEC minska X med 1, resultat i U. 0101dddd JZ hoppa till adress dddd om aggan Z = 1. 0110dddd LXU ladda X med värdet av U. 0111dddd LYU ladda Y med värdet av U. 1000dddd AND bitvis AND med X och Y, resultat i U. 1001dddd XOR bitvis XOR med X och Y, resultat i U. 1010dddd OR bitvis OR med X och Y, resultat i U. 1011dddd INV bitvis invertering av X, resultat i U. 1100dddd MW skriv U i dataminnet på adress dddd. 1101dddd MRX ladda register X med värdet i dataminnet på adress 1110dddd MRY ladda register Y med värdet i dataminnet på adress 1111dddd JMP hoppa till adress dddd., Digitalteknik L15:14,
DEL 2 - Digital kretskonstruktion Hur hanterar vi en konstruktion som innehåller miljoner transistorer? Vilken typ av konstruktion ska vi välja, en processor, en FPGA eller en ASIC? Hur beskriver vi konstruktionen på ett stukturerat sätt?, Digitalteknik L15:15,
Klassicering av integrerade kretsar Tillverkning kräver hög kompetens och stora resurser. Därför nns endast ett litet antal halvledarfabrikanter i världen. Kundspecika kretsar (ASIC, application specic integrated circuits) Standardkretsar (FPGA, eld programmable gate array), Digitalteknik L15:16,
ASIC Full-custom ASIC, kunden levererar en fullständig specikation ner på lägsta nivån (transistor). Mycket komplex design. Standard-cell ASIC, Kunden beskriver sin design i form av standardceller, givna av tillverkaren. Allt från enkla grindar till microprocessorer. Gate array ASIC, Chipet har stora grindmatriser, där kunder specicerar förbindningsmönster., Digitalteknik L15:17,
Standardkretsar Funktionsbestämda: fabricerade komponenter (7400 serien med olika komponenter), mikroprocessorer, etc. Icke funktionsbestämda: PLD (programmable logic device), enkla programmerbara komponenter (PLA, PAL, ROM); Complex eld programmable devices, CPLD (complex programmable logic device) FPGA, Digitalteknik L15:18,
FPGA Integrerad krets, vars fysiska funktion kan ändras genom att ny programmering översänds genom anslutning av en enkel kabel. Kretsens funktionsbeskrivning kan laddas in direkt via en datalänk (JTAG) till en dator eller från minnen som till exempel RAM, ROM eller ashminne. Vissa FPGA-kretsar behåller kongurationen även efter förlust av elektrisk spänning., Digitalteknik L15:19,
17 7 Series FPGAs Overview DS180 (v1.16) October 8, 2014 Product Specification General Description Xilinx 7 series FPGAs comprise three new FPGA families that address the complete range of system requirements, ranging from low cost, small form factor, cost-sensitive, high-volume applications to ultra high-end connectivity bandwidth, logic capacity, and signal processing capability for the most demanding high-performance applications. The 7 series FPGAs include: Artix -7 Family: Optimized for lowest cost and power with small Virtex -7 Family: Optimized for highest system performance and form-factor packaging for the highest volume applications. capacity with a 2X improvement in system performance. Highest capability devices enabled by stacked silicon interconnect (SSI) Kintex -7 Family: Optimized for best price-performance with a 2X technology. improvement compared to previous generation, enabling a new class of FPGAs. Built on a state-of-the-art, high-performance, low-power (HPL), 28 nm, high-k metal gate (HKMG) process technology, 7 series FPGAs enable an unparalleled increase in system performance with 2.9 Tb/s of I/O bandwidth, 2 million logic cell capacity, and 5.3 TMAC/s DSP, while consuming 50% less power than previous generation devices to offer a fully programmable alternative to ASSPs and ASICs. Summary of 7 Series FPGA Features Advanced high-performance FPGA logic based on real 6-input lookup table (LUT) technology configurable as distributed memory. 36 Kb dual-port block RAM with built-in FIFO logic for on-chip data buffering. High-performance SelectIO technology with support for DDR3 interfaces up to 1,866 Mb/s. High-speed serial connectivity with built-in multi-gigabit transceivers from 600 Mb/s to maximum rates of 6.6 Gb/s up to 28.05 Gb/s, offering a special low-power mode, optimized for chip-to-chip interfaces. A user configurable analog interface (XADC), incorporating dual 12-bit 1MSPS analog-to-digital converters with on-chip thermal and supply sensors. DSP slices with 25 x 18 multiplier, 48-bit accumulator, and pre-adder for high-performance filtering, including optimized symmetric coefficient filtering. Powerful clock management tiles (CMT), combining phase-locked loop (PLL) and mixed-mode clock manager (MMCM) blocks for high precision and low jitter. Integrated block for PCI Express (PCIe), for up to x8 Gen3 Endpoint and Root Port designs. Wide variety of configuration options, including support for commodity memories, 256-bit AES encryption with HMAC/SHA-256 authentication, and built-in SEU detection and correction. Low-cost, wire-bond, lidless flip-chip, and high signal integrity flipchip packaging offering easy migration between family members in the same package. All packages available in Pb-free and selected packages in Pb option. Designed for high performance and lowest power with 28 nm, HKMG, HPL process, 1.0V core voltage process technology and 0.9V core voltage option for even lower power. Table 1: 7 Series Families Comparison Maximum Capability Artix-7 Family Kintex-7 Family Virtex-7 Family Logic Cells 215K 478K 1,955K Block RAM (1) 13 Mb 34 Mb 68 Mb DSP Slices 740 1,920 3,600 Peak DSP Performance (2) 929 GMAC/s 2,845 GMAC/s 5,335 GMAC/s Transceivers 16 32 96 Peak Transceiver Speed 6.6 Gb/s 12.5 Gb/s 28.05 Gb/s Peak Serial Bandwidth (Full Duplex) 211 Gb/s 800 Gb/s 2,784 Gb/s PCIe Interface x4 Gen2 x8 Gen2 x8 Gen3 Memory Interface 1,066 Mb/s 1,866 Mb/s 1,866 Mb/s I/O Pins 500 500 1,200 I/O Voltage 1.2V, 1.35V, 1.5V, 1.8V, 2.5V, 3.3V 1.2V, 1.35V, 1.5V, 1.8V, 2.5V, 3.3V 1.2V, 1.35V, 1.5V, 1.8V, 2.5V, 3.3V Package Options, Digitalteknik L15:20, Low-Cost, Wire-Bond, Lidless Flip-Chip Notes: 1. Additional memory available in the form of distributed RAM. Low-Cost, Lidless Flip-Chip and High-Performance Flip-Chip Highest Performance Flip-Chip
, Digitalteknik L15:21,
2014-11-07 Digilent Inc. - Digital Design Engineer's Source Digilentinc.com Blog Learn Forum search digilentinc.com Search Products +Coming Soon +New Products FPGA Boards Cmod S6 ZYBO ZedBoard Anvyl Genesys Atlys Nexys 4 Nexys 3 Nexys 2 Basys 3 Basys 2 NetFPGA-1G-CML FMC Carrier S6 XUP V5 S3E Board CoolRunner-II Starter XUP V2-Pro NETFPGA Cmod +Scopes & Instruments +chipkit Boards +Microprocessor Boards +FMC Cards +Peripheral Modules +NI Academic Products +Analog Devices +Microchip Tools +Software +Programming Solutions +Robotic Platforms +Textbooks +Add-On Boards +Accessories +Discontinued Enter a value code: Submit Nexys 4 Artix-7 FPGA Board $320.00 $159.00 Currently in stock Part # 410-274P-KIT Hide Details The Nexys4 board is a complete, ready-to-use digital circuit development platform based on the latest Artix-7 Field Programmable Gate Array (FPGA) from Xilinx. With its large, high-capacity FPGA (Xilinx part number XC7A100T- 1CSG324C), generous external memories, and collection of USB, Ethernet, and other ports, the Nexys4 can host designs ranging from introductory combinational circuits to powerful embedded processors. Several built-in peripherals, including an accelerometer, temperature sensor, MEMs digital microphone, speaker amplifier and lots of I/O devices allow the Nexys4 to be used for a wide range of designs without needing any other components. The Artix-7 FPGA is optimized for high performance logic, and offers more capacity, higher performance, and more resources than earlier designs. Artix-7 100T features include: 15,850 logic slices, each with four 6-input LUTs and 8 flip-flops 4,860 Kbits of fast block RAM Six clock management tiles, each with phase-locked loop (PLL) 240 DSP slices Internal clock speeds exceeding 450MHz On-chip analog-to-digital converter (XADC) The Nexys4 also offers an improved collection of ports and peripherals, including: 16 user LEDs Two 4-digit 7-segment displays 16 user switches Two tri-color LEDs Micro SD card connector USB-UART Bridge PWM audio output PDM microphone 12-bit VGA output Temperature sensor 10/100 Ethernet PHY 3-axis accelerometer Serial Flash Four Pmod ports 16Mbyte CellularRAM Digilent USB-JTAG port for FPGA USB HID Host for mice, keyboards and Pmod for XADC signals programming and communication memory sticks The Nexys4 is compatible with Xilinx s new high-performance Vivado Design Suite as well as the ISE toolset, which includes ChipScope and EDK. Xilinx offers free Webpack versions of these toolsets, so designs can be implemented for no additional cost. If you would like an evaluation board for academic purposes, you can apply for a donation through the Xilinx University Program. Note: The Nexys4 s onboard programming circuitry is not supported by the Hardware Server in Vivado 2013.2 and earlier. The FPGA must be programmed using impact in these versions of Vivado. The Hardware Server in versions 2013.3 and newer fully support the Nexys4., Digitalteknik L15:22,
, Digitalteknik L15:23, Nexys 4 development board
Utvecklingsprocessen - Abstraktionsnivå Låg nivå Hög nivå Transistor nivå Grind nivå (timing - propagation delay; placement and routing on the chip) RTL (Register Transfer Level) nivå (moduler konstruerade från grindar/vippor) (abstrakta datatyper; beteendebeskrivning; gemensam klocksignal; stabila system; layout - oor plan) Processor nivå (större mer avancerade block), Tillverkare tillhandahåller IP's, exempelvis en microprocessor, Digitalteknik L15:24,
Utvecklingsprocessen - CAD CAD-verktyg används för att konstruera kretsar. Ett CAD-verktyg är ett datorprogram som automatiskt gör delar av konstruktionsarbetet. CAD-verktyg behöver en beskrivning av kretsens funktion på någon abstraktionsnivå. HDL (Hardware Description Language), exempelvis VHDL, Verilog, Digitalteknik L15:25,
Utvecklingsprocessen - CAD CAD-programmen kan göra följande Syntes - Översättning av beskrivningen på högre nivå till lägre nivå, för att till slut syntetisera till en färdig krets. Fysisk design beror på underliggande krets, exempelvis vilken FPGA som används. Veriering - På varje abstraktionsnivå kan veriering av beteendet av beskrivningen ske. Funktionsmässig veriering Timing veriering Simulering - utifrån dokumenterade önskemål analyserar CAD-programmet Testning (fysisk), funktionen hos varje färdig krets testas för att upptäcka defekter etc., Digitalteknik L15:26,