Цитата(sazh @ Nov 15 2008, 21:57)

Не понятно, что такое логическое сложение. Возможны наверно два варианта. Первый - это пока заданное не отработает, игнорирует записанный код в регистре. Второй вариант - Снова перезаписывает новое значение кода - и до переполнения. Не понятно что получается.
Вот пример, наверно базисный.
Код
module shim_test
(
input clk,
input [7:0] period,
input [7:0] interval,
output reg l_int,
output shim,
output reg ochibka
);
reg [7:0] ct_a, ct_b;
reg enable;
always @(posedge clk)
begin
if (ct_a == 8'd1) begin
ct_a <= (period == 8'd0) ? 8'd1 : period;
ct_b <= (interval == 8'd0) ? 8'd1 : interval;
enable <= 1'b1;
l_int <= 1'b1; end
else begin
ct_a <= ct_a - 1'b1;
if (enable) ct_b <= ct_b - 1'b1;
if (ct_b == 8'd1) enable <= 1'b0;
l_int <= 1'b0; end
ochibka <= (period <= interval);
end
assign shim = enable;
endmodule
Спасибо. Я подумаю. Если, что надумаю, выложу.
Цитата(Boris_TS @ Nov 15 2008, 22:05)

Я использую конструкция просто регистр + счетчик, в такой задаче: есть некий подвижный объект, он перемещается с какой-то скоростью, необходимо генерировать импульсы (для запуска чего-то) через равные промежутки расстояния, скорость конечно же меняется... При моих физических ограничениях на возможные ускорения объекта (и !!! заданной минимальной частоты дискретизации) вполне достаточно досчета счетчика по старому значению и по переполнению загрузки нового.
Я вот у Вас как-то до конца не разобрал этот момент...
А вот наверное третий вариант...
Но если Вам необходимо работать так:
1. Если новое значение меньше предыдущего (понижаем частоту) - то можно, чтобы счетчик досчитал до переноса.
2. Если новое значение больше предыдущего (повышаем частоту) - то необходимо, чтобы счетчик с момента обновления считал не дольше нового (свежезаданного периода ожидания).
То тогда Вы можете откровенно поставить рядышком вычитатель, который будет сравнивать код в счетчике с находящемся в регистре (в т.ч. и всежезаписанным), и если счетчику считать дольше, то перезаписывать в него новое начальное значение.
Надеюсь не слишком мутно объяснил
У меня тоже для управления неким объектом. ЧПУ выдает код на мое устройство переодом 1мс..
Допустим мое устройство меняет переод от 10мкс. до 1сек.. Вот в случае если записан код для 1сек.
то ЧПУ в этот момент может изменить 1000раз.. Это устройство можно назвать как ЦАП с цифровым
выходом что-ли?. Т.е. мое устройство должно реагировать как ЦАП.