МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА: Что такое массивы сигнальных шин?

Что такое массивы сигнальных шин? 7 года 7 мес. назад #120

  • Modest
  • Modest аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 2
  • Спасибо получено: 0
Здраствуйте. Я недавно начал изучать программирование на языке Verilog, и вот не как не могу понять следующее

Так же, в большинстве диалектов Verilog, вы можете определить массивы сигнальных шин:
wire [7:0] k [0:19]; //массив из двадцати 8-ми битных шин

Мне не понятно что такое массивы, и где они используются, так как я их не где до этого не встречал.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #121

  • dolkons
  • dolkons аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 22
  • Спасибо получено: 1
имеется ввиду, что у тебя есть шины, состоящие из 8 проводов(то есть восьмибитные). А массив [0..19] это 20 шин восьмибитных. То есть есть шина k0[7..0], k1[7..0] и т.д. Вроде так...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #122

  • Modest
  • Modest аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 2
  • Спасибо получено: 0
ну я тоже так подумал, просто уточнить хотелось, спасибо

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #123

  • nckm
  • nckm аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 88
  • Спасибо получено: 23

Modest пишет: Здраствуйте. Я недавно начал изучать программирование на языке Verilog, и вот не как не могу понять следующее

Так же, в большинстве диалектов Verilog, вы можете определить массивы сигнальных шин:
wire [7:0] k [0:19]; //массив из двадцати 8-ми битных шин

Мне не понятно что такое массивы, и где они используются, так как я их не где до этого не встречал.


в принципе эти массивы чем-то похожи на массивы обычных языков программирования.
вот например на языке С вы пишите:

unsigned char my_array[64];

это объявление будет обозначать место в памяти для хранения 64 байта. Но ведь каждый байт - это 8 бит.
В верилог похоже нет объявлений типа БАЙТ или СЛОВО или ДВОЙНОЕ СЛОВО.
Вместо этого объявляются сразу и размер слова и количество слов. Вот так:

reg [7:0] my_array [0:63]; //64 восьмибитных слова

Это может использоваться там, где как раз нужны массивы.
Например в проекте "AVR микропроцессор" для платы Марсоход используется массив регистров.
Ведь у процессора есть несколько/много регистров общего назначения и для операции в АЛУ выбирается только пара регистров.
Индексы в массиве выбирают нужные регистры.

Объявления массивов wire наверное нужны чтобы соединять массивы регистров.
Спасибо сказали: dolkons

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #124

  • KhaeS
  • KhaeS аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 33
  • Спасибо получено: 0
А как потом обращаться к каждому из элементов?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #125

  • dolkons
  • dolkons аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 22
  • Спасибо получено: 1

KhaeS пишет: А как потом обращаться к каждому из элементов?

В смысле? Если вы имеете ввиду какой либо из 64 регистров к примеру, то просто. Например вам нужен регистр под номером 20. Вы и напишете array[20]. Вот так.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #126

  • KhaeS
  • KhaeS аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 33
  • Спасибо получено: 0

nckm пишет:

Modest пишет:
reg [7:0] my_array [0:63]; //64 восьмибитных слова


Если мне нужен 3-й бит в 34-м my_array, то я должен написать что-то вроде: my_array[34][3]?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Что такое массивы сигнальных шин? 7 года 7 мес. назад #127

  • dolkons
  • dolkons аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 22
  • Спасибо получено: 1
Посмотри на сайте marsohod.org. Там есть обучение Verilog. Первый урок. Там написано про это...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.172 секунд

facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Языки программирования Что такое массивы сигнальных шин?