Lesson 2: Design an address decoder for 64 KB memory from 16KB memory ICs, knowing that the memory base address is 94000H and the address decoder is designed using circuits combinatorial logic.
I don't understand how to do this Lesson :'(
115 Views Asked by Tờ Ân At
1
There are 1 best solutions below
Related Questions in CPU-ARCHITECTURE
- What is causing the store latency in this program?
- what's the difference between "nn layout" and "nt layout"
- Will a processor with such a defect work?
- How do i find number of Cycles of a processor?
- Why does LLVM-MCA measure an execution stall?
- Can out-of-order execution of CPU affect the order of new operator in C++?
- running SPEC in gem5 using the SimPoint methodology
- Why don't x86-64 (or other architectures) implement division by 10?
- warn: MOVNTDQ: Ignoring non-temporal hint, modeling as cacheable!, While simulating x86 with spec2006 benchamrks I am getting stuck in warn message
- arithmetic intensity of zgemv versus dgemv/sgemv?
- What is the microcode scoreboard?
- Why don't x86/ARM CPU just stop speculation for indirect branches when hardware prediction is not available?
- Question about the behaviour of registers
- How to increase throughput of random memory reads/writes on multi-GB buffers?
- RISVC Single Cycle Processor Data Path and Testbench
Related Questions in CIRCUIT
- Why my code for finding an Euler Circuit of a graph only works partially?
- Simulating 4bit FullAdder in python, not getting correct output
- Extract board outline of an PCB
- Expecting a SInt value from a Wire, in Chisel
- How to run QucsStudio at the command line?
- Blazor Server (NET 7): Uncaught (in promise) Error: Server returned an error on close: Connection closed with an error
- Can a non-constrained public signal be changed by an adversary in a Circom circuit?
- Simulating a circuit with initial conditions given in a loop with PySpice
- A switch to toggle only when going from 0 to 1
- 32 bits in single ROM address in Logisim Evolution
- My code ignores the if condition when checking the button state
- Multisim - AND Gate Always Giving An Output
- Why Circuit (circom) can't compare timestamp?
- Arduino Id Instance error on python vscde
- How do I identify the Boolean Expression of this logic circuit?
Related Questions in DIGITAL-LOGIC
- designing a circuit with 3 3-bit inputs and 4 1-bit outputs
- Non Restoring Division in Iverilog
- How to mitigate / suppress tristate bus conflict warnings with Cocotb?
- Draw Logic Circuits using python's schemdraw
- How to implement the Boolean function = + ′′ + ′ with NAND and NOT gates
- FPGA Basys 3 State Machine Logic with PMOD ALS Sensor
- Understanding the functioning of 'and' and 'or'
- How can I determine the sop and pos part from a combined expression
- width mismatch in assignment; target has 10 bits, source has 8 bits error
- Using One's Complement In Place of Directly Subtracting Two Binary Numbers
- How to write ALU control lines?
- Multiplication table in VMLab / AVR
- VHDL - Upper digit output does not go up from '0000', when implementing two-digit-bcd-counter
- Output not as expected when implementing 4-bit SISO register in VHDL
- Problem while implementing JK-Flip Flop in VHDL
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
64KB is four times 16KB, so you will need four 16KB memory chips. Addressing 64 KB = 216 bytes of memory requires 16 wires between CPU and the memory chips. Let's enumerate those wires as 0..15:
Your 16KB chips use only addressing pins 0..13, connect them all in parallel to the address bus. The remaining pins 14..15 need to be decoded to four chip-select (CS) signals, connected each to their corresponding 16KB chip and causing the chip idle when CS is not 1.
Combinatorial logic of the decoder is straightforward:
Construction of the decoder depends on available logical gates, for instance CS0 should be 1 if and only if both pins 14 and 15 area 0, so you may need two input invertors and one AND gate.
Remapping the address space to 94000H
affects only address bit 14 of 64KB memory, so you should invert this bit on input of your four CS decoders and you can ignore addressing pins 16..19.