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

 
 
> Тернарный оператор VS конструкция if-else, Какова логика языка? Почему одно не заменяет другое?
flammmable
сообщение Jun 7 2018, 06:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 4-06-18
Пользователь №: 104 848



Предположим, есть конечный автомат, который в работе должен пробрасывать тактовую частоту через себя, а в состоянии IDLE установить выход тактовой частоты в единицу.

Тогда код может быть следующий:
Код
wire clk_in;
wire clk_out;
reg state;

assign clk_out = clk_in | ~(state^IDLE);

Т.е. если state и IDLE совпадают бит-в-бит, то их побитовый XOR будет равен нулю. Инвертированный ноль - это единица. Единица или clk_in - единица. В противном случае, ноль или clk_in - это clk_in.
Всё абсолютно прозрачно синтезируется.

Или код может быть такой:
Код
wire clk_in;
wire clk_out;
reg state;

assign clk_out = clk_in | (state == IDLE);//На месте синтезатора я заменил бы данную конструкцию на предыдущую


Или такой:
Код
wire clk_in;
wire clk_out;
reg state;

assign clk_out =(state == IDLE) ? 1 : clk_in;


Но почему не прокатывает следующий вариант?
Код
wire clk_in;
wire clk_out;
reg state;

always @(state)
begin
if(state == IDLE) begin
  clk_out = 1;
end
else begin
  clk_out = clk_in;
end
end

В таком варианте Квартус ругается на то, что "10137: Object on left-hand side of assignment must have a variable data type".

Не, ну нельзя, так - нельзя. Но эмм... в списке чувствительности отсутствуют posedge/negedge. В любом случае, синтезатор будет разворачивать эту конструкцию в комбинационную логику (причем, скорее всего в такую, как в первом примере). Так чего же он лезет на рожон (регистр ему подавай)? Какова логика языка? Почему так писать некорректно?

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- flammmable   Тернарный оператор VS конструкция if-else   Jun 7 2018, 06:53
- - Flip-fl0p   Цитата(flammmable @ Jun 7 2018, 09:53) 1...   Jun 7 2018, 07:20
|- - iosifk   Цитата(Flip-fl0p @ Jun 7 2018, 10:20...   Jun 7 2018, 08:14
|- - flammmable   Цитата(Flip-fl0p @ Jun 7 2018, 10:20...   Jun 7 2018, 10:32
||- - iosifk   Цитата(flammmable @ Jun 7 2018, 13:32) Ко...   Jun 7 2018, 11:45
|||- - flammmable   Цитата(iosifk @ Jun 7 2018, 14:45) Для на...   Jun 7 2018, 12:26
||||- - iosifk   Цитата(flammmable @ Jun 7 2018, 15:26) Т....   Jun 7 2018, 12:30
||||- - flammmable   Цитата(iosifk @ Jun 7 2018, 15:30) Тогда ...   Jun 7 2018, 15:17
|||- - flammmable   Цитата(iosifk @ Jun 7 2018, 14:45) Если В...   Jun 13 2018, 08:31
|||- - iosifk   Цитата(flammmable @ Jun 13 2018, 11:31) к...   Jun 13 2018, 08:49
||- - RobFPGA   Приветсвую! Цитата(flammmable @ Jun 7 201...   Jun 7 2018, 12:16
||- - sazh   Цитата(flammmable @ Jun 7 2018, 13:32) 1....   Jun 7 2018, 19:20
|- - Viktuar   Цитата(iosifk @ Jun 7 2018, 09:14) Вот та...   Jun 7 2018, 17:27
|- - iosifk   Цитата(Viktuar @ Jun 7 2018, 20:27) Прост...   Jun 7 2018, 18:18
|- - RobFPGA   Приветствую! Цитата(iosifk @ Jun 7 2018,...   Jun 7 2018, 18:39
|- - Bad0512   Цитата(RobFPGA @ Jun 8 2018, 01:39) Приве...   Jun 8 2018, 02:18
||- - flammmable   Цитата(Bad0512 @ Jun 8 2018, 05:18) Думаю...   Jun 8 2018, 05:31
||- - Bad0512   Цитата(flammmable @ Jun 8 2018, 12:31) Бу...   Jun 8 2018, 06:58
|- - dima32rus   Цитата(RobFPGA @ Jun 7 2018, 21:39) Прост...   Jun 8 2018, 06:43
|- - RobFPGA   Приветствую! Цитата(dima32rus @ Jun 8 20...   Jun 8 2018, 08:35
- - RobFPGA   Приветсвую! Цитата(flammmable @ Jun 7 20...   Jun 7 2018, 08:05
- - andrew_b   Цитата(flammmable @ Jun 7 2018, 09:53) Пр...   Jun 7 2018, 08:22
- - Dantist2k17   ЦитатаНо почему не прокатывает следующий вариант? ...   Jun 7 2018, 11:30
- - lembrix   Цитата(flammmable @ Jun 7 2018, 13:32) Пр...   Jun 8 2018, 07:39
|- - Flip-fl0p   Цитата(lembrix @ Jun 8 2018, 10:39) Я бы...   Jun 8 2018, 07:43
- - dima32rus   Ну вот такой теоретический пример CODEmodule cnt_t...   Jun 8 2018, 10:20
|- - RobFPGA   Приветствую! Цитата(dima32rus @ Jun 8 201...   Jun 8 2018, 10:48
||- - dima32rus   Цитата(RobFPGA @ Jun 8 2018, 13:48) Вот о...   Jun 8 2018, 11:06
||- - Flip-fl0p   Цитата(dima32rus @ Jun 8 2018, 14:06) Сог...   Jun 8 2018, 11:26
|- - Flip-fl0p   Цитата(dima32rus @ Jun 8 2018, 13:20) Да...   Jun 8 2018, 10:50
|- - RobFPGA   Приветствую! Цитата(Flip-fl0p @ Jun...   Jun 8 2018, 11:30
|- - Flip-fl0p   Цитата(RobFPGA @ Jun 8 2018, 14:30) Экон...   Jun 8 2018, 11:39
|- - RobFPGA   Приветствую! Цитата(Flip-fl0p @ Jun ...   Jun 8 2018, 11:49
|- - Flip-fl0p   Цитата(RobFPGA @ Jun 8 2018, 14:49) .... ...   Jun 8 2018, 12:08
- - dima32rus   Переделал модуль. Теперь счетчик, вынесенный из ав...   Jun 8 2018, 12:19


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:57
Рейтинг@Mail.ru


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