Проектирование оперативной памяти с использованием микросхем 4x2 с емкостью 8 адресов.

Это типичный экзаменационный вопрос, и я видел несколько очень полезных сообщений о нем, но у меня все еще много сомнений.

Учитывая интегральную схему определенных размеров, для этого примера 4x2, я должен разработать оперативную память с x адресами и y битами каждый. Вот пример схемы, которую я должен использовать:

введите описание изображения здесь

  • A0, A1 – адресные линии
  • D0, D1 – линии данных
  • R/W – чтение/запись строки
  • CS – Линия выбора чипов

С IC1 мне придется сделать RAM-память с 8 адресами , по 8 бит каждый , указывающими линию CS (Chip Selection) памяти .


Пока что я могу понять из этого, что IC1 имеет 4 ячейки или адреса, и каждая из них может содержать 2 бита. Итак, если мне нужно 8 адресов, это будет означать, что мне нужно иметь 2 IC1, но тогда они не будут содержать достаточно битов, а это означает, что мне нужно еще два (используя только выводы данных)?

Я очень запутался в том, как делать эти проекты, так как у меня никогда не было возможности построить их в лабораторном сценарии. Я надеюсь, что кто-то может дать мне несколько советов или показать мне, как эти чипы могут быть связаны, чтобы сделать желаемую память. Я не ищу просто ответ на пример, потому что мне придется создавать другую оперативную память с другими чипами.


Вот что я придумал:

введите описание изображения здесь

Различие между расширением ширины и расширением глубины, каждое из которых не зависит от другого и требует отдельного подхода.
Ворота И, которые вы нарисовали, расположены в обратном порядке и не имеют никакого смысла.
Да, я знал, что это не может быть правдой @duskwuff, но я просто не могу понять, как свести на нет один из банков. Если бы я мог использовать два чипа для этого, мне просто пришлось бы использовать инвертор, прежде чем подключать линию CS к одному из них. Я обновил свой черновик.
Вы оставили это наполовину завершенным. Если вы его закончите, правильный ответ будет полезен другим пользователям сайта.
@TonyM Не волнуйся, я скоро закончу, просто сейчас я очень занят другими темами. Я очень благодарен за всю помощь, которую все мне оказали, и за то, что побудил меня продвинуться вперед с этим вопросом, и как только я решу это правильно, я обновлю это :)
Как и обещал @TonyM, я опубликовал свой собственный ответ с тем, что я считаю правильным способом отрицания верхнего берега, надеюсь, на этот раз у меня получилось.

Ответы (2)

Вам понадобится два банка по четыре фишки. Четыре микросхемы в каждом банке просто имеют свои сигналы A0, A1, CS, R/W, а их D0/D1 подключены к D0/D1, D2/D3, D4/D5, D6/D7.

Сигнал CS каждого банка должен быть рассчитан с помощью логики, использующей внешний сигнал CS и внешний сигнал A2. Два вентиля И и один инвертор.

Это все указатели, которые вам нужны.

Спасибо за советы, я добавил свой черновик к вопросу. Вынужден ли я использовать И и инвертор, чтобы добиться того, чего я хочу, или это просто вопрос большей организованности?
В вашем черновике отсутствует логика A2. Вам нужны какие-то средства для генерации сигнала CS для верхнего и нижнего банка. Только один из них может быть активен, когда активен внешний CS. Это делается с помощью двух логических элементов И и одного инвертора.
Спасибо за то, что до сих пор были со мной, @Janka, я обновил свой черновик, но чувствую, что неправильно использовал вентили AND. Я начинаю это понимать, я просто не уверен, как осуществляется соединение и инверсия между несколькими банками. Если бы мне нужно было использовать только два чипа, все, что мне нужно было сделать, это сделать инвертирование перед подключением к CS одного из них.
Сначала вам следует пересмотреть, как функционируют логические элементы И. Затем помните, что вы должны подать в них внешние сигналы CS и A2 и в результате получить внутренние верхний CS и нижний CS.
Я знал, что эти И были слишком схематичными, я снова обновил свой черновик. Я знакомился с воротами, но я просто не могу понять, как отрицать весь банк, и где появляется другое И. Я ненавижу просить решенную вещь, но не могли бы вы показать мне, что мой черновик пропал, отсутствует?
@BlindRoach, вы теперь так близки, что вам нужно сделать только декодер адресов, как вы, вероятно, поняли. Это лучше всего решить, нарисовав таблицу истинности — она позволит вам ясно увидеть, что должен делать декодер. Вы можете решить все это отсюда, всю схему. Нарисуйте таблицу истинности с входами (CS, A2) и выходами (selLoBank, selHiBank), а затем заполните ее тем, что вам нужно. Только тогда вы должны думать о своих воротах И и НЕ. Продолжать идти :-)
Вам нужны два внутренних CS, один для верхнего банка и один для нижнего банка. CS верхнего ряда имеет высокий уровень, когда внешние CS и A2 имеют высокий уровень. Вам это кажется разумным? CS нижнего банка имеет высокий уровень, когда внешний CS имеет высокий уровень, а A2 низкий . теперь понимаешь?

После всех советов, которые мне давали все, и освежения знаний о построении схем, вот что я придумал.

введите описание изображения здесь

Теперь я вижу, что было не так со всеми моими другими набросками, поскольку я все еще не был уверен в том, как работает CS. Чтобы быть уверенным, что я понял это, я сделал другое воспоминание, на этот раз 4x2 с использованием 2x1. Вот мое решение:

введите описание изображения здесь

Я решил разместить фишки в другом порядке, чтобы убедиться, что я знаю, что делаю, а не просто копирую последний вопрос.