|
Вопросы начинающего в ПЛИС |
|
|
|
Feb 3 2010, 11:15
|
Частый гость
 
Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494

|
Добрый день. Начинаю работать с ПЛИС. Хочу сделать устройство, выделяющее четные и нечетные единицы в исходной информационной последовательности. написал следующий код: Код module Try_AND ( // {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE! clock, data, ones, zeroes // {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE! ); // Port Declaration input clock; input data; output ones; output zeroes; // {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! // {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! wire p1; reg out_c; reg out_n; assign ones = out_c & data; assign zeroes = out_n & data; assign p1 = data & clock; always @(posedge p1) begin out_c<=~out_c; out_n<=out_c; end endmodule Первая просьба. Посмотрите, вообще правильно пишу? Второй вопрос, Квартус выдает следующий анализ:
Такой сдвиг относительно исходных сигналов - это нормально? Я понимаю, задержка и все такое, но как-то много. И как избавиться от коротких импульсов, возникающих, видимо, как раз из-за этой задержки? Спасибо.
|
|
|
|
|
 |
Ответов
|
Feb 4 2010, 04:04
|
Частый гость
 
Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494

|
Учу-учу матчасть  Оказывается арифметический и циклический сдвиг - это одно и то же. Так вот мне и нужен циклический(арифметический) сдвиг. Который, согласно мануалу - <<<; Нужно, чтоб работало именно так: Цитата It shall fill the vacated bit positions with the value of the most-significant (i.e., sign) bit of the left operand if the result type is signed. Но непонятно, что имеется в виду под словами result type? Выполнив: Q = 7'b0000111 Q <= Q <<< 3 Хочу получить: Q == 7'b0111000....
|
|
|
|
|
Feb 4 2010, 04:10
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Shaienn @ Feb 3 2010, 22:04)  Оказывается арифметический и циклический сдвиг - это одно и то же. вроде одни и те же доки читаем, а результат разный %) Цитата Нужно, чтоб работало именно так: направление сдвига не перепутали ?  слова про msb относились к сдвигу вправо >>>, а не влево <<< %) Цитата(Shaienn @ Feb 3 2010, 22:04)  Выполнив: Q = 7'b0000111 Q <= Q <<< 3 Хочу получить: Q == 7'b0111000. в данном случае именно так и будет, но если Q получает значение только по initial, то квартус Q тупо подвесит VCC/GND и выдаст предупреждение. но если вы имели в виду вот это Цитата Q = 7'b1000111 Q <= Q <<< 3 Хочу получить: Q == 7'b0111100 то такое одними стандартными сдвигами не сделать, лучше воспользоваться конкатенацией %) например q <= {q[6:0], q[7]} для циклического сдвига на 1 бит.
--------------------
|
|
|
|
|
Feb 4 2010, 04:32
|
Частый гость
 
Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494

|
Цитата(des00 @ Feb 4 2010, 08:10)  вроде одни и те же доки читаем, а результат разный %) направление сдвига не перепутали ?  слова про msb относились к сдвигу вправо >>>, а не влево <<< %) в данном случае именно так и будет, но если Q получает значение только по initial, то квартус Q тупо подвесит VCC/GND и выдаст предупреждение. но если вы имели в виду вот это то такое одними стандартными сдвигами не сделать, лучше воспользоваться конкатенацией %) например q <= {q[6:0], q[7]} для циклического сдвига на 1 бит. Да, хочу, чтобы работало как в приведенном Вами последнем примере. Спасибо за информацию. Буду грызть дальше. Цитата(Dima_G @ Feb 4 2010, 07:49)  << - битовый сдвиг <<< - арифметический Код input clock; output S;
reg [6:0] Q;
initial begin Q = 7'b1111110; end
always @(posedge clock) begin Q <= {Q[5:0], Q[6]}; end
assign S = Q[6]; Должно бы работать, но на выходе 0. Цитата(des00 @ Feb 4 2010, 08:10)  если Q получает значение только по initial, то квартус Q тупо подвесит VCC/GND и выдаст предупреждение. А как правильно задать значение для Q?
|
|
|
|
Сообщений в этой теме
Shaienn Вопросы начинающего в ПЛИС Feb 3 2010, 11:15 Костян У вас асинхронный дизайн !!! Так делат... Feb 3 2010, 11:26 Shaienn попробовал применить Ваш совет:
Кодmodule Try_AND... Feb 3 2010, 11:57 Костян Цитата(Shaienn @ Feb 3 2010, 09:57) Код ... Feb 3 2010, 12:16 Dima_G Цитата(Shaienn @ Feb 3 2010, 15:57) Резул... Feb 3 2010, 12:20 Shaienn не, Вы меня, кажется, немножко не поняли.
Задача ... Feb 3 2010, 12:22 Dima_G Цитата(Shaienn @ Feb 3 2010, 15:22) Так в... Feb 3 2010, 12:34 sazh Цитата(Shaienn @ Feb 3 2010, 14:15) Добры... Feb 3 2010, 12:31 Shaienn Цитата(sazh @ Feb 3 2010, 15:31) В исходн... Feb 3 2010, 12:43  sazh Цитата(Shaienn @ Feb 3 2010, 15:43) услов... Feb 3 2010, 12:52 yuri_d Цитата(Shaienn @ Feb 3 2010, 14:15) Такой... Feb 3 2010, 12:58 Shaienn Всем спасибо. Вопросы пока кончились. Feb 3 2010, 13:13 Dima_G . Feb 3 2010, 13:17 Shaienn Возник еще один вопрос:
Кодinput clock;
output S;... Feb 3 2010, 15:44 des00 Цитата(Shaienn @ Feb 3 2010, 09:44) Хочу ... Feb 3 2010, 16:13  Shaienn Цитата(des00 @ Feb 3 2010, 19:13) так цик... Feb 3 2010, 16:26   des00 Цитата(Shaienn @ Feb 3 2010, 10:26) цикли... Feb 3 2010, 17:29    Shaienn Цитата(des00 @ Feb 3 2010, 20:29) тогда и... Feb 3 2010, 23:15     des00 Цитата(Shaienn @ Feb 3 2010, 17:15) Так в... Feb 4 2010, 03:49 Dima_G << - битовый сдвиг
<<< - арифметиче... Feb 4 2010, 03:49   des00 Цитата(Shaienn @ Feb 3 2010, 22:27) Должн... Feb 4 2010, 04:33 Dima_G Хм, а Вы к Quartus отлаживате? Тогда делайте иници... Feb 4 2010, 04:37 Shaienn Снова добрый день.
Спаял я макетную плату для epm... Feb 10 2010, 07:21 sazh Цитата(Shaienn @ Feb 10 2010, 10:21) Снов... Feb 10 2010, 07:36  Shaienn Цитата(sazh @ Feb 10 2010, 11:36) В Кварт... Feb 10 2010, 07:45
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|