реклама на сайте
подробности

 
 
> Вопросы начинающего в ПЛИС
Shaienn
сообщение Feb 3 2010, 11:15
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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


Первая просьба. Посмотрите, вообще правильно пишу?

Второй вопрос, Квартус выдает следующий анализ:
Прикрепленное изображение


Такой сдвиг относительно исходных сигналов - это нормально? Я понимаю, задержка и все такое, но как-то много. И как избавиться от коротких импульсов, возникающих, видимо, как раз из-за этой задержки?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shaienn
сообщение Feb 4 2010, 04:04
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



Учу-учу матчасть smile.gif

Оказывается арифметический и циклический сдвиг - это одно и то же.

Так вот мне и нужен циклический(арифметический) сдвиг. Который, согласно мануалу - <<<;

Нужно, чтоб работало именно так:
Цитата
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....
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 4 2010, 04:10
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Shaienn @ Feb 3 2010, 22:04) *
Оказывается арифметический и циклический сдвиг - это одно и то же.

вроде одни и те же доки читаем, а результат разный %)

Цитата
Нужно, чтоб работало именно так:

направление сдвига не перепутали ?smile.gif слова про 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 бит.


--------------------
Go to the top of the page
 
+Quote Post
Shaienn
сообщение Feb 4 2010, 04:32
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



Цитата(des00 @ Feb 4 2010, 08:10) *
вроде одни и те же доки читаем, а результат разный %)


направление сдвига не перепутали ?smile.gif слова про 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?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.03121 секунд с 7
ELECTRONIX ©2004-2016