реклама на сайте
подробности

 
 
> Работа с несколькими источниками сигнала для одного компанента, Quartus II
Lixlex
сообщение Nov 8 2011, 04:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 8-11-11
Из: Рязань
Пользователь №: 68 183



Здравствуйте, товарищи! Столкнулся при освоении QUARTUS c одной проблемой, очень неприятной для меня. Для наглядности опишу ситуацию:
У нас есть 8-битный регистр даннные в который заносятся по шине data[7..0]. Таким образом получается, что кроме как через эту шину не как не смогу занести в него данные. А мне нужно управлять отдельными битами регистра, но по другой линии. Посоветуйте пожалуйста как это по красивее сделать? Буду благодарен за пример схемы или кода на AHDL.
Напрашивается 2 способа :
1)Ставить мультиплексор, но тогда не очень удобно получится - ведь мне нужно управление лишь отдельными битами регистра
2) ставить перед входом регистра двувходовое " логическое И" на те биты, которыми надо управлять по второй линии - это пожалуй то что мне нужно но опять же не могу сделать так чтобы схема не была громоздкой.
Подскажите как это сделать правильно
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lixlex
сообщение Nov 8 2011, 11:51
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 8-11-11
Из: Рязань
Пользователь №: 68 183



Цитата
Если будете ставить свою исхему, то по одному "И" не хватит и у Вас в конечном счете получится тот-же мультиплексор.

как раз хватит. По тому, что по второй линии биты нужно только устанавливать, можно без возможности их сброса (флаг переполнения счетчика).
Но проблема не в этом. Мне немного не понятно как работать с шиной. Допустим есть шина data[7..0] можно брать от нее отдельные проводники, называя их соответственно data[0] data[1] и т.д. Но это получается на столько неудобно! Есть еще какой нибудь другой способ?
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 8 2011, 11:57
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Lixlex @ Nov 8 2011, 05:51) *
Есть еще какой нибудь другой способ?

Есть, выкинуть в топку схематик и писать все ручками %)

Код
generate
for (int i = 0; i < 8; i++) begin
  always_ff @(posedge clk) begin
    if (set_bits[i] ^ write)
      data[i] <= set_bits[i] | write_data[i];
  end
endgenerate



--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 17:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016