这个是跑马灯的设计,我想的是右移来实现,仿真能通过,但是在综合时候就报错了
Logic for shiftR[7:0] does not match a standard flip-flop
module mode( clk1,clk2,clk3,reset,Yin,Pout );
input clk1,clk2,clk3,reset;
input [3:0]Yin;
output [7:0]Pout;
reg [7:0]shiftR;
reg [15:0]mode2;
reg [7:0]mode31;
reg [7:0]mode32;
always @(posedge clk1 or posedge reset)
begin
if(Yin[0])
begin
if (reset) shiftR<=8'b01010101;
else begin
shiftR<={shiftR[0],shiftR[7:1]};
end
end
end
always @(posedge clk2 or posedge reset)
begin
if(Yin[1])
begin
if(reset)
begin mode2<=16'b0000000011111111;
shiftR<=mode2[15:8];
end
else begin
mode2<={mode2[0],mode2[15:1]};
shiftR<=mode2[15:8];
end
end
end
always @(posedge clk3 or posedge reset)
begin
if(Yin[2])
begin
if(reset)
begin
mode31<=8'b11110000;
mode32<=8'b00001111;
shiftR<=8'b00000000;
end
else begin
mode31<={mode31[0],mode31[7:1]};
mode32<={mode32[6:0],mode32[7]};
shiftR<={mode31[3:0],mode32[7:4]};
end
end
end
assign Pout=shiftR;
endmodule