Follow our Telegram channel to get notified instantly whenever new books are published.
FPGA Prototyping By SystemVERILOG Examples Xilinx microBlaze MCS SoC Edition – PONG P CHU

An I/O core complying with the slot interface can be plugged into the controller and accessed by the processor. The block diagram of the MMIO subsystem is shown in Figure 11.7. Figure 11.7 Block diagram of the MMIO controller. 11.3.1 MMIO slot interface specification From the processor’s perspective, a slot is a 32-word (25-word) memory module.
The slot interface is defined as follows: addr (bus to core). It is a 5-bit address signal used to identify the 32-bit destination I/O register within the core. rd_data (core to bus). It is a 32-bit signal carrying the read data. wr_data (bus to core). It is a 32-bit signal carrying the write data. read (bus to core). It is a 1-bit control signal activated with the read operation. write (bus to core).
It is a 1-bit control signal to enable the register write. cs (bus to core). It is a 1-bit enable (i.e., “chip-select”) signal to select and activate the core. Its characteristics are similar to those of the FPro bus except that it contains a smaller five-bit address. Note that the widths of the address and data line are fixed.
The 32 registers represent the maximum number allowed in a core and some can be left unused. The 32-bit data width is selected to facilitate the processor data access. If a data item is less than 32 bits (e.g., one byte), the unused bits will be ignored. On the other hand, if a data item is more than 32 bits, it must be split into multiple registers and accessed through multiple read or write operations.
The software must pack or unpack the data as needed. An alternative to the fixed-size interface is to let each I/O core define its own address width and data width. This approach will make more efficient use of the memory space. However, because of the variation, a custom system-level decoding circuit and multiplexing circuit are needed for each individual SoC design. For simplicity, we use the fixed interface for the FPro system. 11.3.2 Basic MMIO I/O core construction Constructing an MMIO I/O cores consists of the following steps: 1.
Design the custom digital circuit. 2. Determine the I/O register map for the slot interface. 3. Derive the wrapping circuit. 4. Develop the software driver. After a custom digital circuit is developed, we need to determine how the processor interacts with the I/O core, such as writing data, reading data, retrieving status, and issuing command, and to derive a register map accordingly.
A wrapping circuit “wraps” the custom logic to create an interface compatible with the slot specification.
This edition first published 2018 © 2018 John Wiley & Sons, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by law. Advice on how to obtain permission to reuse material from this title is available at http://www.wiley.com/go/permissions.
The right of Pong P.Chu to be identified as the author of this work has been asserted in accordance with law. Registered Office John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, USA Editorial Office 111 River Street, Hoboken, NJ 07030, USA For details of our global editorial offices, customer services, and more information about Wiley products visit us at www.wiley.com.
Wiley also publishes its books in a variety of electronic formats and by print-on-demand. Some content that appears in standard print versions of this book may not be available in other formats. Limit of Liability/Disclaimer of Warranty While the publisher and authors have used their best efforts in preparing this work, they make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation any implied warranties of merchantability or fitness for a particular purpose.
No warranty may be created or extended by sales representatives, written sales materials or promotional statements for this work. The fact that an organization, website, or product is referred to in this work as a citation and/or potential source of further information does not mean that the publisher and authors endorse the information or services the organization, website, or product may provide or recommendations it may make. This work is sold with the understanding that the publisher is not engaged in rendering professional services.
The advice and strategies contained herein may not be suitable for your situation. You should consult with a specialist where appropriate. Further, readers should be aware that websites listed in this work may have changed or disappeared between when this work was written and when it is read. Neither the publisher nor authors shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.
Library of Congress Cataloging-in-Publication Data Names: Chu, Pong P., 1959-author. Title: FPGA prototyping by systemVERILOG examples. Xilinx MicroBlaze MCS SoC Edition / by Pong P. Chu, Cleveland State University. Description: Hoboken, NJ, USA : Wiley, 2018. | Includes bibliographical references and index. | Identifiers: LCCN 2018005487 (print) | LCCN 2018006519 (ebook) | ISBN 9781119282693 (pdf) | ISBN 9781119282709 (epub) | ISBN 9781119282662 (cloth) Subjects: LCSH: Field programmable gate arrays–Design and construction.
This is a short excerpt from the opening of “” by Unknown, quoted for review and introduction purposes. All rights belong to the copyright holders.
Book Information
- Unique ID: 11a1b9a3c17bf139
- File Extension: .pdf
- File Size: 31,948,905 bytes (30.469 MB)
- Title: –
- Author: Unknown
- ISBN: 9781119282693, 9781119282709, 9781119282662, 0000000000
- Pages: 897
- Language: English (en)
Reading & Word Statistics
- Estimated Reading Time: 692.51 minutes
- Total Words: 138,503
- Total Characters: 836,545
- Average Words per Page: 154.41
- Average Characters per Page: 932.6
Most Frequent Words
circuit (920), data (915), core (849), figure (731), signal (633), bit (626), code (569), shown (541), register (515), listing (475), operation (471), system (468), used (439), design (418), two (411), clock (406), use (345), bits (342), output (335), video (331), section (317), memory (309), one (301), buffer (289), input (288), value (283), block (270), device (266), write (265), diagram (264), address (261), signals (260), hdl (250), frame (250), fpro (249), read (247), control (242), state (236), logic (236), file (232), number (231), counter (226), software (225), pixel (224), led (216), first (214), chapter (213), discussed (212), interface (208), time (206), controller (205), module (205), cores (197), hardware (192), note (191), verify (190), subsystem (188), since (187), example (186), new (186), bus (183), port (182), derive (178), statement (177), rate (177), driver (172), thus (172), fpga (170), program (170), type (170), contains (168), always (166), fifo (166), table (163), set (162), registers (161), basic (157), four (157), display (156), development (154), three (154), board (152), spi (151), line (149), ram (148), timing (147), uart (146), processor (143), between (142), simple (141), implementation (141), function (141), method (137), generate (136), follows (136), slot (135), fsm (134), test (132), book (131), color (131).
