

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Information on various memory structures, their sizes, and memory operations in the context of microprocessor systems. Students are required to design and simulate a simple memory cell and sram using quartus, understand memory endian-ness, and explore the significance and differences between risc and cisc architectures. The document also includes quiz questions.
Typology: Exercises
1 / 3
This page cannot be seen from the preview
Don't miss anything!


Spring 2012 (Morrow) 1
1. (10 points) Memory Structures
A. For each of the below memory structures, express the memory size in bytes using the appropriate prefix (K, M, G, etc). a. 8589934592 x 2b b. 32768 x 32b c. 512 x 128b d. 1048576 x 16b
B. For byte-wide memories of sizes 1KB, 1MB, 1GB, and 1TB, what is the number of memory locations and the range of addresses for each device, all expressed in hexadecimal. How many address bits are required for each range of addresses?
2. (15 points) Review of Memory Construction
A simple memory cell with bidirectional data can be constructed using just a D-FF and a tri-state buffer. Using Quartus, you are to create such a memory cell, and then use it to construct an 8 x 4b memory. Implement your design by using the sample Quartus project linked on the course web page as a starting point. Delete the file ece315_top.bdf , and set a new file sram_8x4.bdf to be your top-level file. Create another new file mem_cell.bdf , and implement a single-bit memory cell. Then use good hierarchical design techniques to create the logic for an 8x4b SRAM. You may only use the following library parts in your design – input (pin), bidir (pin), dff , tri , and2 , and3 , not. All parts can be found under the primitives tree in the Quartus Symbol window.
Note that this is an asynchronous design – there is no clock. Your circuit should have the following external connections; A2, A1, A0, D3, D2, D1, D0, nWR, nRD. nWR and nRD are active-low write and read signals, respectively. The data for a write operation should be stored on the rising edge of nWR. D3-D0 are bidirectional data lines. It is assumed that you will never drive the data lines while nRD is asserted. Use the minimum number of devices required to complete the circuit.
Turn in paper copies of all BDF files.
3. (15 points) Review of Memory Operation
A. For the circuit you designed in #2 above, run a functional simulation to do the following -
ECE 353 Introduction to Microprocessor Systems
Spring 2012 (Morrow) 2
B. How would the simulation results change if a timing simulation were run instead of a functional simulation? C. What does it mean when we say a signal is active-high or active-low?
4. (10 points) Memory Map
A microprocessor generates 32-bit memory addresses. Draw a byte-wide memory map of its address space with all boundaries specified in hexadecimal. A 512MB ROM is located in the address space ending at the highest possible address. A 128KB block of memory mapped I/O is located at base address 0x90000000. A 2GB RAM is located at the lowest memory addresses. Show all of these devices in the memory map with their boundaries labeled in hexadecimal. How large is the total address space (in bytes)?
5. (18 points) Flags Register
Microprocessors typically have a flags register (also commonly called a condition codes register or processor status register) where certain information about recent operations is stored. Common information includes whether there was an arithmetic overflow (for unsigned and signed operation), if the result was negative, and if the result was zero. (In the ARM7, these correspond to the CPSR register’s C (unsigned overflow), V (2’s-complement overflow), N (negative), and Z (zero) bits.) Assume that a microprocessor’s ALU has an 8-bit adder as shown below. A. Draw logic to show how the four flag bits implemented in the ARM7 can be efficiently generated for this ALU. B. Explain how arithmetic overflow is detected for unsigned and signed operations, with examples.
6. (10 points) Memory Endian-ness
The unsigned value 0xDEADBEEF is to be stored in memory as a 32-bit value at address 0x40001234. Using small segments of a byte-wide memory map, show how it will be stored into memory in both a little-endian and big-endian system.