Professional Documents
Culture Documents
課堂筆記
課堂筆記
課堂筆記
Catalogs of IP blocks from the likes of Arm, Cadence and OpenCore can be used for the design of a SoC.
Table 2.1 contains a non-exhaustive list of such blocks.
Interconnects Interconnect family provides on-chip AMBA connectivity for components implementing any
combination of AMBA AXI, AHB, AHB-Lite, APB and APB3 interfaces
Memory controllers Memory controllers including dynamic and static memory controllers
System controllers System controllers including interrupt controllers, DMAs, color LCDs, level-2 cache controllers,
TrustZone controllers
Programmable interfaces Peripherals including GPIOs, UARTs, synchronous serial ports, keyboard/mouse, smart cards,
real-time clocks, external buses, test peripherals
All of the IP block catalogs provide the specifications of the components, providing information on:
n how the component can be configured and the list of registers exposed by its programming interface
n the type of delivery: whether it is in the form of RTL code or an already synthesized block
If a block is not taken as an IP block from a third-party vendor and must be designed, one needs
to know how it will be connected to the system. Because different types of interconnect exist, the
new block will need to implement the correct signals and the correct interface to receive write
and read commands. Once this is done, the next step is to create the programming interface for
the component. This involves the list of registers that must be configured so that it can be used.
Eventually, once the block has been designed and verified, it can be incorporated into the overall
system design.
Thus, the first step necessary is to define the different instructions to be supported and the associated
opcode that the processor will understand. This is termed the instruction set. If we use as an example
the ADD assembler instruction that takes data from a register, adds an operand and puts the result
into another register, the instruction will look like this for Arm:
49