mag 0 28 апреля, 2006 Опубликовано 28 апреля, 2006 · Жалоба Тип данных, - такой же. SRAM_ADRESS : INTEGER RANGE 0 TO 524286; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 28 апреля, 2006 Опубликовано 28 апреля, 2006 · Жалоба Когда появляется необходимость изменять сигнал из разных модулей, то это означает, что архитектура системы спроектирована неверно. Имхо. Ну почему сразу неверно? Можно собрать все модули в один и уж тогда легко менять требуемый сигнал. Но читабельность проекта снизится. Самый правильный вариант как уже предложили - это создать еще один модуль и подцепить к нему остальные. А мультиплексоры уже отменили? А вообще автору топика следует основательно подучить VHDL либо заплатить тому, кто сделает этот девайс за пару дней. Я бы посоветовал начать с рисования схемы на бумаге используя базовые примитивы Счетчик, Дешифратор, Логический_элемент_Х и тд. Каждый из них без труда создается на VHDL (настоятельно советую пользоваться Active HDL). Верхний уровень пишите на VHDL сами или (предпочтительнее) создавайте в виде схематики в том же ActiveHDL. Избежите множества ошибок. Плюс отличная тренировка - разглядывать, как ActiveHDL создает базовые элементы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexandr 0 28 апреля, 2006 Опубликовано 28 апреля, 2006 · Жалоба Тип данных, - такой же. SRAM_ADRESS : INTEGER RANGE 0 TO 524286; Что-то мне подсказывает, что нужно сделать так: SRAM_ADRESS : std_logic_vector (8 dowto 0):="000000000"; SRAM_ADRESS <= conv_xxx(SRAM_ADRESS_s); где conv_xxx - функция конвертации из integer в std_logic_vector. Точно не помню как называется. А мультиплексоры уже отменили? Не отменили. Но по большому счету - это и есть третий дополнительный модуль ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 28 апреля, 2006 Опубликовано 28 апреля, 2006 · Жалоба Можно ли как-нибудь изменить один сигнал, находящийся в одном модуле и одной архитектуре, но который необходимо менять из двух разных процессов? На вскидку 1. Объединить процессы. 2. Подавать некий управляющий сигнал из одного процесса в другой. И уже второй процесс будет сам менять требуемый сигнал 3. Согдать третий процесс и подавать туда управляющие сигналы от двух процессов Спасибо. В принципе, я и использую второй вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mag 0 28 апреля, 2006 Опубликовано 28 апреля, 2006 · Жалоба Alexandr, спасибо за идею, прийду домой обязательно попробую :) Gorby, помоему вы слишком котегоричны в высказываниях :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mag 0 28 апреля, 2006 Опубликовано 28 апреля, 2006 · Жалоба http://www.altera.com/support/examples/vhd...ck-syncram.html Altera не заморачивалась с написанием мультиплексоров :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 1 мая, 2006 Опубликовано 1 мая, 2006 · Жалоба Alexandr, спасибо за идею, прийду домой обязательно попробую :) Gorby, помоему вы слишком котегоричны в высказываниях :)) Попробую оправдаться :glare: Во первых, помощи попросили Вы, а не я. Во вторых, вместо невнятных строчек кода, выдранных неизвестно откуда (никого не хочу обидеть!) , я Вам даю намного более ценное: стратегию. Слишком часто вижу, как люди уходят с головой в мелочи и не видят глобальных вещей. Вы же видите, как дискуссия плавно перешла совсем в другую плоскость. Не пытайтесь написать микропроцессор в одном процессе. (по кр. мере сейчас) Один процесс - одна простая сущность. Тогда и не придется разруливать один сигнал от двух процессов. Потому как есть третий процесс - а уж он может быть мультиплексором или чем угодно. А насчет категоричности... Вам мама каким тоном говорила не совать пальцы в розетку? Вежливо рекомендовала или... :-) Помните у Жванецкого? - "Я остановлю мотор, но пусть он мне сначала докажет..." Это реакция моториста на команду с мостика "Стоп машина". А катер неумолимо несется к берегу... Если бы Вы знали ответ на свой вопрос, Вы бы его не задавали. Если же Вы задали его, то это дает мне право на некоторую категоричность: "Делай вот так!". Потому что несколько лет назад я сам прошел все стадии того, как делать НЕ надо. Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 1 мая, 2006 Опубликовано 1 мая, 2006 · Жалоба http://www.altera.com/support/examples/vhd...ck-syncram.html Altera не заморачивалась с написанием мультиплексоров :) Ну-ну... PROCESS (clock) BEGIN IF (clock'event AND clock = '1') THEN IF (we = '1') THEN ram_block(to_integer(unsigned(write_address))) <= data; END IF; q <= ram_block(to_integer(unsigned(read_address))); END IF; END PROCESS; Это не скрытый ли мультиплексор там внутри засел?! А вообще это только обертка для синтезатора. Вы посмотрите в RTL что там на самом деле стоит на шинах адреса. Если что-то сделано неявно, это не значит что оно не сделано. "Все не так, как кажется..." :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mag 0 2 мая, 2006 Опубликовано 2 мая, 2006 · Жалоба Ну-ну... PROCESS (clock) BEGIN IF (clock'event AND clock = '1') THEN IF (we = '1') THEN ram_block(to_integer(unsigned(write_address))) <= data; END IF; q <= ram_block(to_integer(unsigned(read_address))); END IF; END PROCESS; "ткни пальцем", где здесь мультиплексор??? Что мультиплексирует? ram_block - двунаправленная линия с одним драйвером или q и data ? :) А вообще, герой, снизошедший до нас грешных... если знаешь, подскажи как ("правильный" листинг из 3 процессов) , а если пальцы гнуть, или пятак чесать(это я о твоем "фото") то не стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ChinasFanat 0 2 мая, 2006 Опубликовано 2 мая, 2006 · Жалоба Извините что влазию :) может он имел ввиду мультиплексор на линиях адреса?!? :blink: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 2 мая, 2006 Опубликовано 2 мая, 2006 · Жалоба Извините что влазию :) может он имел ввиду мультиплексор на линиях адреса?!? :blink: Спасибо, что влезли :) Ведь очевидно, что без мультиплексора на шине адреса там никак не обошлось? А мой оппонент так и не увидел. А вообще вот история в тему. Больница. Обход. Пациент с болью в животе. Профессор и группа студентов-третьекурсников. Старый профессор уже минут двадцать сидит возле пациента, то пощупает ему живот, то еще что-то сделает. Наконец поднимается и говорит: аппендицит. На заднем плане один студент другому : - Ну и баран этот профессор! - А шо такое? - Так я за десять секунд тот же диагноз поставил : симптом Щеткина-Блюмберга - положительный, значит и коню понятно, что аппендицит. Молодому человеку невдомек было, сколько ДЕСЯТКОВ других возможных диагнозов перебрал и отбросил за те двадцать минут профессор. to mag: ребята, честное слово, я помочь хочу таким как вы. Но блин, вы столько еще не знаете и главное, не хотите знать, что просто волосы дыбом. "Вот видишь там мультиплексор? -Неееа... -И я не вижу. Но он там есть!" Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться