demsp 0 28 марта, 2018 Опубликовано 28 марта, 2018 (изменено) · Жалоба Делаю простое ОЗУ Изменено 28 марта, 2018 пользователем demsp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 28 марта, 2018 Опубликовано 28 марта, 2018 · Жалоба Делаю простое ОЗУ - создаю несколько триггреров reg q (запись производится по фронту) module my_dff ( input clk, input d, output...); reg q; always @(posedge clk) q <= d; assign... endmodule Подключаю их в основной модуль, записть в выбранный триггер произвожу демультиплексором ссылка module my_module( input... output...); //демультиплексор reg [3:0]out; always @ * begin case( addr ) 2'd0: out = { 3'b000, clk }; 2'd1: out = { 2'b00, clk, 1'b0 }; 2'd2: out = { 1'b0, clk, 2'b00 }; 2'd3: out = { clk, 3'b000 }; endcase end //триггеры my_dff dff1 ( .d(d), .clk(out[0]) ); my_dff dff2 (... ); my_dff dff3 (... ); my_dff df4 (... ); Но вот странно: Запись в триггер происходит как по фронту, так и по спаду (при переключении на другой адрес) , т.е. я переключаюсь, например, с 00 на 01, и в триггер с адресом 00 производится запись (как-бы по спаду). Если я остаюсь на одном адресе, запись нового значения по спаду не производится. Хотите правильно : берите листок бумаги и рисуете на ней все триггеры, которые Вам нужны, все клоки, все сигналы разрешения, все входы и выходы. И когда на бумаге будет схема - описывайте её на языке HDL. Более того, если что-то выкладывайте - то выкладывайте полностью кусок кода, в котором ошибка. Сейчас я вижу непонятный огрызок кода, в этом огрызке написана полная ерунда, извините меня за резкость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demsp 0 28 марта, 2018 Опубликовано 28 марта, 2018 (изменено) · Жалоба Вот картинка - на вход DEMUX'а подключен клок Запись в триггеры должна происходить по фронту always @(posedge clk) но запись в триггер происходит также при HIGH на клоке при смене адреса (т.е. по спаду) Изменено 28 марта, 2018 пользователем demsp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 28 марта, 2018 Опубликовано 28 марта, 2018 · Жалоба Это плохая картинка. Тут скорее показано как делать не надо в ПЛИС :rolleyes: Для организации памяти у производителей чипов есть заготовки файлов различного рода памяти. Лучше воспользуйтесь ими. Или изучите что-то типа "recommended hdl coding styles" для семейства ПЛИС с которым Вы работаете. На самый крайний случай, если это какая-то лабораторная в институте то можно и так описать: https://ibb.co/mNpkZn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 28 марта, 2018 Опубликовано 28 марта, 2018 · Жалоба Делаю простое ОЗУ Для начала: ОЗУ - это когда "много" битов хранится. А то, что Вы выкладываете - это скорее регистр с произвольной записью битов. А вот далее - это просто тихий ужас, летящий на крыльях верилога... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demsp 0 28 марта, 2018 Опубликовано 28 марта, 2018 (изменено) · Жалоба Для начала: ОЗУ - это когда "много" битов хранится. Спасибо, действительно, в этом простом ОЗУ вместо триггеров должны быть регистры, но сути вопроса это не меняет. Для организации памяти у производителей чипов есть заготовки файлов различного рода памяти. Лучше воспользуйтесь ими. Дайте ссылку плиз Изменено 28 марта, 2018 пользователем demsp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OM-S 0 28 марта, 2018 Опубликовано 28 марта, 2018 · Жалоба Спасибо, действительно, в этом простом ОЗУ вместо триггеров должны быть регистры, но сути вопроса это не меняет. Дайте ссылку плиз Например у Ксайлинкса в документе ug687 в разделе 6 HDL coding techniques http://www.xilinx.com/support/documentatio..._4/xst_v6s6.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 29 марта, 2018 Опубликовано 29 марта, 2018 · Жалоба Дайте ссылку плиз https://google.gik-team.com/?q=recommended+hdl+coding+styles Спасибо, действительно, в этом простом ОЗУ вместо триггеров должны быть регистры, но сути вопроса это не меняет. А в чем разница между триггером и регистром ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demsp 0 29 марта, 2018 Опубликовано 29 марта, 2018 · Жалоба А в чем разница между триггером и регистром ? триггер (в русскоязычной литературе) - это флип-флоп (в англоязычной литературе) Вот одна и та же статья из Википедии на русском триггер и на английском flip-flop Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться