wire [3:0] x,y;
wire [7:0] z;
assign x = a[3:0] + b[3:0]; // складываются 4 младших разряда на шинах а и b (Больше, посмотреть)
assign y = a[7:4] + b[7:4]; // складываются 4 старших разряда на шинах а и b (Больше, посмотреть)
assign z = x+y;
assign res_0 = z;
assign res_1 = z[5]; // Тут непонятно. Висит в воздухе на схеме
endmodule
Но res_1 - упорно рисуется "в воздухе" (с подписью 1'h0) и никак не подключен к схеме.
Про оптимальность сейчас речи нет, тут больше, для понимания пока пишу.
Очень непривычно.
Заранее спасибо и не пинайте сильно. Вроде, интересная штука, но малопонятная, даже после прочтения кучи статей. В железо, пока и не лазал. Тут-бы с софтом разобраться.
Разбираться пытаюсь в Quartus Ptime 17.0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вопрос от совсем новичка по вводу/выводу
2 года 2 нед. назад #7481
Что вы собственно хотите понять?
Что такое цифровые логические схемы, в частности, ПЛИС?
Как описываются цифровые логические схемы на языках HDL?
Или научиться эти схемы симулировать?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вопрос от совсем новичка по вводу/выводу
2 года 2 нед. назад #7482
Понятно, что симулировать. До полного понимания процесса, рано еще в железо лить. Тем-более, что программирование мне не чуждо и это должно легко освоиться. Потому и отверг идею рисования, как многие советуют и сразу стал разбираться с программированием. Вот некоторые вещи не совсем понятны, потому и спросил. Вроде, все описано, а выход в воздухе висит. Как он тогда получит уровень состояния этого бита?
Он-же должен через что-то его получить. Там, регистр какой сдвиговый, а не просто из воздуха.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Программирование и описание схемы на HDL совершенно разные вещи.
Если вы разбираетесь в цифровой схемотехнике, то рекомендую поступить следующим образом.
Компилируете ваш проект под какой-нибудь реальный чип , и смотрите в RTL-Viewer, что получилось.
Очень многое станет понятно.
Это от того, уважаемый kolyan, что в Вашем примере шины x и y имеют разряды от 0 до 3. Следовательно на шине z будут разряды от суммы x и y от 0 до 4, а пятый и старшие разряды z всегда будут равны нулю. Поэтому Quartus, поразмыслив об этом, решил, что нет смысла подключать res_1 к z[5], который всегда будет равен нулю, и просто подключил его к нулю.
Так оно и было. Надо внимательней быть. Заодно понял, что означает значок заземления. Это - провода, болтающиеся в воздухе. :)
Подвело непонимание. Я думал, что раз шина, то биты остаются на своих местах (как при AND), а они - смещались в младшенькие.
А это - прожорливо:
Timing Models Final
Total logic elements 12 / 240 ( 5 % )
Total pins 28 / 80 ( 35 % )
Надо было пожирней платку брать. На такой примитив - 5% элементов. Хотя, до платы еще далеко. :)
Надо язык освоить. С дуру ее ждал, а мог начать уже.
А можно глупый вопрос?
Если мне где-то нужна не земля на "схеме", как ее задать?
Землю, я уже научился задавать. Просто, не цеплять никуда. Ж)))) Правда, случайно.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
kolyan пишет: Землю, я уже научился задавать. Просто, не цеплять никуда. Ж)))) Правда, случайно.
Не нужно на это надеяться. Компилятор может сделать так, как ему проще, а не так , как вам нужно.
Для этого есть "константы" В графике так -
marsohod.org/11-blog/145-quartussch
В верилоге еще проще - wire [7:0] z = 8'h00;
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.