Опитвам се да използвам FPGA като преместващ регистър към някои светодиоди с pwm, но попаднах на грешка, докато се опитвах да присвоя reg, съдържащ стойността, изместена в изходна променлива. Когато го кача на FPGA (използвам mojo от вграден микро), той не прави нищо. когато използвам симулатора, той съобщава, че всички изходни променливи никога не са присвоени и имат стойност 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