-
R2R
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 0
-
-
|
Проблема оказалась в изношенных контактах разъема.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от R2R.
|
-
R2R
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 0
-
-
|
Можно ли использовать while и for для большого количества итераций? Quartus не разрешает более 250.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Вроде как для "for" не д/б ограничений, а для "while" где-то в настройках синтезатора можно менять (если не путаю, Квартус на другом компе).
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
virusonehalf
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 9
-
Спасибо получено: 0
-
-
|
Здавствуйте! Не получается сгенерить N количество одинаковых логических элементов и свести их в нужные шины, в комментах кода текст ошибок компилятора.
Код:
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
module generator #(LINES=128)(wire_a, wire_b, wire_ge);
//parameter LINES=128;
...
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
virusonehalf
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 9
-
Спасибо получено: 0
-
-
|
Спасибо Leka! Почитав уроки здесь же я понял что код никуда не годится... Подскажите пожалуйста как сгенерить N количество xor2 например, чтоб его ноги были групированы в шины Например:
Xor2_0, a_0, b_0, c_0
Xor2_1, a_1, b_1, c_1
....
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Оказывается, Icarus Verilog уже v10.0, проверил по-быстрому - понимает упакованные массивы System Verilog!!! :silly:
Это то, чего мне очень не хватало в предыдущей версии. Я использую обычный Верилог + упакованные массивы из SV.
UPD. Не все конструкции из рабочих проектов компилируются в Icarus Verilog v10.0, но их немного. Так что снова стал пользоваться этой программой.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
with
-
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 76
-
Спасибо получено: 3
-
-
|
Я не большой любитель .. просить помощи на форумах .. по любым вопросам ...
Но тут я завис уже конкретно. Ситуация следующая .. писал код на верилоге для преобразования бинарных значений в символы для семисегментного индикатора. Конечный код компилется нормально, но в железе не работает. Стал разбираться в чем дело - выяснилось зависает при использовании операции вычитания "-" в составе автомата состояний. Упростил конечный код до минимума .. результат тот же - зависает на операции вычитания.
Что я делаю не так ?
Пример тестового кода: //===============================================================
reg [3:0] Convert_State;
reg [3:0] Next_C_State;
reg [15:0] dat_in = 0;
reg [15:0] Test_dat = 16'd202;
//===============================================================
always @(posedge clk) Convert_State <= Next_C_State;
always @* begin
Next_C_State = Convert_State;
case(Convert_State)
4'd0:begin
dat_in = Test_dat;
test_point = 1'b0;
Next_C_State = 4'd1;
end
4'd1:begin
if(dat_in > 16'd100) Next_C_State = 4'd2;
else Next_C_State = 4'd3;
end
4'd2:begin
dat_in = dat_in - 16'd100;
test_point_2 = 1'b1;
Next_C_State = 4'd1;
end
4'd3:begin
dat_out_10 = dat_in;
test_point = 1'b1;
Next_C_State = 4'd0;
end
default: Next_C_State = 4'd0;
endcase
end
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
-
Не в сети
-
Администратор
-
-
Сообщений: 816
-
Спасибо получено: 168
-
-
|
А строчка "Next_C_State = Convert_State;" не лишняя?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
with пишет: зависает на операции вычитания
Описана защелка вместо регистра, поэтому и "зависает".
Приведенный код в части вычитания эквивалентен следующему:
always@* if(...) dat_in = dat_in - 100;
Так нельзя!
Надо вынести присваивание нового значения dat_in в блок с always@(posedge clk).
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
Время создания страницы: 0.142 секунд