МАРСОХОД

Open Source Hardware Project

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

ТЕМА: Последовательные сигналы с определенной частотой

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6249

  • aus
  • aus аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 9
  • Спасибо получено: 0
Здравствуйте. Не так давно начал изучение ПЛИС и необходимо реализовать 3 последовательности импульсов как показано на картинке. Импульсы длиной 10 мкс повторяются с частотой 10 кГц, следующая последовательность начинается после первого импульса предыдущей последовательности. Как делать последовательность более менее понятно, а вот как их сделать сдвинутые не понятно. Подскажите пожалуйста. Язык верилог.
Вложения:

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6259

aus пишет: Как делать последовательность более менее понятно.

Вот вы и сделайте пока то , что вам понятно. Если с продолжением все-таки возникнут сложности, я вам помогу. :)

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

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6260

  • aus
  • aus аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 9
  • Спасибо получено: 0

umarsohod пишет:

aus пишет: Как делать последовательность более менее понятно.

Вот вы и сделайте пока то , что вам понятно. Если с продолжением все-таки возникнут сложности, я вам помогу. :)


Разобрался все получилось. Вот только почему первый импульс обрезанный? И еще вопрос, мои последовательности должны идти от команды из вне, т.е. входной сигнал при значении 1 - импульсы идут, при 0 - нет. Как я понял конструкция if используется только в блоках always, а без if что то не приходит в голову как сделать)

Вот код
module test (
	input SET,
	input clk,
	output [2:0] z
	);
reg [8:0] q;
reg clk100 = 0;
reg [9:0] sr = 1;
wire [2:0] out;

assign out[0] = sr[0];
assign out[1] = sr[2];
assign out[2] = sr[4];

always @(posedge clk) begin
	if (q == 500) begin
	clk100 <= ~clk100;
	q <= 0;
	end
	else q <= q + 1;
end

always @(posedge clk100) sr <= {sr[8:0], sr[9]};

assign z = out;
endmodule
Вложения:

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6264

1. reg clk100 = 1;
2. assign z = out & SET;

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6277

  • aus
  • aus аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 9
  • Спасибо получено: 0

umarsohod пишет: 2. assign z = out & SET;


При такой записи первая последовательность устанавливается в 1, остальные в 0

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6279

Тогда сделайте или побитно :

assign z[0] = out[0] & SET;
assign z[1] = out[1] & SET;
assign z[2] = out[2] & SET;

Или размножьте SET :

wire [2:0] SSS = {SET,SET,SET};
assign z = out & SSS;
Спасибо сказали: aus

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6282

  • aus
  • aus аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 9
  • Спасибо получено: 0

umarsohod пишет: Тогда сделайте или побитно :

assign z[0] = out[0] & SET;
assign z[1] = out[1] & SET;
assign z[2] = out[2] & SET;

Или размножьте SET :

wire [2:0] SSS = {SET,SET,SET};
assign z = out & SSS;


Теперь работает как надо, спасибо большое)

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6298

  • aus
  • aus аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 9
  • Спасибо получено: 0
Меняю частоту повторения до 14 кГц и длительность импульса 5 мкс. Получается длительность между импульсами 25 мкс, а между последним и первым 20 мкс. Как сделать, чтобы они шли с одинаковой длительностью?
Вложения:

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6299

Код выложите.

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

Последовательные сигналы с определенной частотой 2 года 3 мес. назад #6300

  • aus
  • aus аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 9
  • Спасибо получено: 0

umarsohod пишет: Код выложите.

module test (
	input SET,
	input clk,
	output [2:0] z
	);
reg [8:0] q;
reg clk100 = 1;
reg [13:0] sr = 1;
wire [2:0] out;
wire [2:0] _SET = {SET,SET,SET};

assign out[0] = sr[0];
assign out[1] = sr[5];
assign out[2] = sr[10];


always @(posedge clk) begin
	if (q == 500) begin
	clk100 <= ~clk100;
	q <= 0;
	end
	else q <= q + 1;
end

always @(posedge clk100) sr <= {sr[12:0], sr[13]};

assign z = out & _SET;
endmodule

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

Последнее редактирование: от aus.
  • Страница:
  • 1
  • 2
Время создания страницы: 0.185 секунд

facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Языки программирования Последовательные сигналы с определенной частотой