Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА:

Вопросы по языку Verilog 10 года 5 мес. назад #5895

  • R2R
  • R2R аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 7
  • Спасибо получено: 0
Проблема оказалась в изношенных контактах разъема.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от R2R.

Вопросы по языку Verilog 10 года 5 мес. назад #5913

  • R2R
  • R2R аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 7
  • Спасибо получено: 0
Можно ли использовать while и for для большого количества итераций? Quartus не разрешает более 250.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 5 мес. назад #5914

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Вроде как для "for" не д/б ограничений, а для "while" где-то в настройках синтезатора можно менять (если не путаю, Квартус на другом компе).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 4 мес. назад #5932

Здавствуйте! Не получается сгенерить N количество одинаковых логических элементов и свести их в нужные шины, в комментах кода текст ошибок компилятора.
Код:

ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 4 мес. назад #5933

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
module generator #(LINES=128)(wire_a, wire_b, wire_ge);
//parameter LINES=128;
...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 4 мес. назад #5934

Спасибо Leka! Почитав уроки здесь же я понял что код никуда не годится... Подскажите пожалуйста как сгенерить N количество xor2 например, чтоб его ноги были групированы в шины Например:
Xor2_0, a_0, b_0, c_0
Xor2_1, a_1, b_1, c_1
....

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 4 мес. назад #5976

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Оказывается, Icarus Verilog уже v10.0, проверил по-быстрому - понимает упакованные массивы System Verilog!!! :silly:
Это то, чего мне очень не хватало в предыдущей версии. Я использую обычный Верилог + упакованные массивы из SV.

UPD. Не все конструкции из рабочих проектов компилируются в Icarus Verilog v10.0, но их немного. Так что снова стал пользоваться этой программой.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.

Вопросы по языку Verilog 10 года 4 мес. назад #6027

  • with
  • 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
			

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 4 мес. назад #6028

А строчка "Next_C_State = Convert_State;" не лишняя?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Вопросы по языку Verilog 10 года 4 мес. назад #6029

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

with пишет: зависает на операции вычитания

Описана защелка вместо регистра, поэтому и "зависает".
Приведенный код в части вычитания эквивалентен следующему:
always@* if(...) dat_in = dat_in - 100;
Так нельзя!
Надо вынести присваивание нового значения dat_in в блок с always@(posedge clk).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.
Время создания страницы: 0.142 секунд
Работает на Kunena форум