Я пытаюсь использовать FPGA в качестве регистра сдвига для некоторых светодиодов с ШИМ, но столкнулся с ошибкой при попытке назначить регистр, содержащий сдвинутое значение, выходной переменной. Когда я загружаю его в FPGA (я использую моджо от встроенного микро), он ничего не делает. когда я использую симулятор, он сообщает, что все выходные переменные никогда не назначаются и имеют значение X, в то время как все остальные переменные внутри модуля работают нормально. вот мой код модуля переключения:
module shifting(
input clk,
input shiftingpin,//data to be shifted in
input rst,
output done,
output [3:0]data//pwm compare value output
);
reg [2: 0] ctr_d, ctr_q;
reg don;
reg [3:0]datas;
always @(*) begin
if(ctr_q == 3'b100) begin
ctr_d[2:0] = 3'b0;
don = 1'b1;
end else begin
ctr_d = ctr_q + 1'b1;
don = 1'b0;
end
end
always @(posedge clk) begin
datas[ctr_q] = shiftingpin;// assign value to the output
if (rst) begin
ctr_q <= 1'b0;
end else begin
ctr_q <= ctr_d;
end
end
assign data = datas;
assign done = don;
endmodule
done сообщает содержащему модулю, когда обновлять и присваивать значение pwm.
datas[ctr_q] <= shiftingpin;
) - person Unn   schedule 12.10.2014