Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: упаковка двоичного кода в восьмибитную память
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
torik
Вот... корявенько тему назвал, а задача такая:
В массиве
Код
reg [7:0] tabl [5:0]
лежат данные, к примеру
Код
8`b10000000
8`b01000000
...................

где то в программе я могу обращаться к этим данным, как tabl[i], где i - номер ячейки в массиве.

Кроме того, быть еще счетчик k, принимающий значения 0..7. Необходимо некой переменной Х (выход 1 бит...) присваивать значение, равное номеру бита k ячейки с номером i.

Кто знает каким методом наиболее оптимально (меньшее кол-во ячеек) дешыфрировать это?
CaPpuCcino
вы можете заводить регистр k в оператор индекса массива - синтезатор это скушает и подумает над оптимальной реализацией для вашей архитектуры.
Код
bit k [2:0];
int i;
// do something with index i
always_comb X=tabl[i][k];
always_ff@(xedge clk) if (reset==1) k<=0; else k<=k+1;
torik
ага, поглядим...
тока вроде удобнее объявлять не как int или еще чего а сразу reg[x:у], т.к. разрядность заранее вся известна...
CaPpuCcino
Цитата(torik @ Apr 22 2007, 21:52) *
тока вроде удобнее объявлять не как int или еще чего а сразу reg[x:у], т.к. разрядность заранее вся известна...

разрядность i синтезатору и так известна вот из этих двух выражений :
reg [7:0] tabl [5:0]
и
X=tabl[i][k]

при синтезе i у вас не будет 32-битным, но 3-битным числом (если это i еще где-нибудь не использовалось с бOльшим диапазоном значений),указывать разрядность имеет смысл если вы к примеру не хотите заморачиваться с переполнением счётчика - на пример :
always_ff@(xedge clk) if (reset==1) k<=0; else k<=k+1;
в вашем же случае если i и будет счётчиком, проверку делать придётся всё-равно - поэтому высчитывать точно разрядность необходимости нет
always_ff@(xedge clk) if (reset==1) i<=0; else
begin
if(i==5) i<=0;
else i<=i+1;
end
torik
спасиб, учел...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.