$B$J$J$7$H$/$a$$(B
Guest
Hi experts.
I'm really new to Verilog and digital circuit.(and english)
I'm studying Verilog now and trying to design a module that will receive data in LVDS.
the following is my code.
When I synthesised this, I received the following Warning message.
************************************************************************
WARNING:Xst:905 - "LVDS_Rcv.v" line 46: One or more signals are missing in the sensitivity list of always block.
To enable synthesis of FPGA/CPLD hardware, XST will assume that all necessary signals are present in the sensitivity list.
Please note that the result of the synthesis may differ from the initial design specification. The missing signals are:<DATA1>, <DATA2>, <cnt>, <regClkcnt>
************************************************************************
i need to capture data1 and data2 signal at both the posedge and negedge of CLK.
and I also need to reset the module when RST is signaled.
so i believe that i have listed all signals that is necessary for my always block.
why synthesizer gives me the message?
could you tell me the reason and how to get rid of it?
thanks.
************************************************************************
`timescale 1ns / 1ps
module LVDS_Rcv(RST, CLK, DATA1, DATA2, OE, RCVDATA, CLKCNT);
input RST;
input CLK;
input DATA1;
input DATA2;
output OE;
output [15:0] RCVDATA;
output [15:0] CLKCNT;
reg [3:0] cnt;
reg [15:0] regRcvData;
reg [15:0] regClkcnt;
always @(CLK or RST) // both edge of CLK, i need to capture data1 and data2.
begin
if(RST)
begin
regRcvData <= 0;
cnt <= 4'b0000;
regRcvData <= 0;
regClkcnt <= 0;
end
else
begin
// push 2bits into register
regRcvData <= {regRcvData[13:0], DATA1, DATA2};
if(cnt == 4'b1000) cnt <= 0;
else cnt <= cnt + 1;
if(regClkcnt == 16'hFFFF) regClkcnt <= 0;
else regClkcnt <= regClkcnt + 1;
end
end
assign OE = (cnt == 4'b1000 ? 1 : 0);
assign RCVDATA = regRcvData;
assign CLKCNT = regClkcnt;
endmodule
************************************************************************
I'm really new to Verilog and digital circuit.(and english)
I'm studying Verilog now and trying to design a module that will receive data in LVDS.
the following is my code.
When I synthesised this, I received the following Warning message.
************************************************************************
WARNING:Xst:905 - "LVDS_Rcv.v" line 46: One or more signals are missing in the sensitivity list of always block.
To enable synthesis of FPGA/CPLD hardware, XST will assume that all necessary signals are present in the sensitivity list.
Please note that the result of the synthesis may differ from the initial design specification. The missing signals are:<DATA1>, <DATA2>, <cnt>, <regClkcnt>
************************************************************************
i need to capture data1 and data2 signal at both the posedge and negedge of CLK.
and I also need to reset the module when RST is signaled.
so i believe that i have listed all signals that is necessary for my always block.
why synthesizer gives me the message?
could you tell me the reason and how to get rid of it?
thanks.
************************************************************************
`timescale 1ns / 1ps
module LVDS_Rcv(RST, CLK, DATA1, DATA2, OE, RCVDATA, CLKCNT);
input RST;
input CLK;
input DATA1;
input DATA2;
output OE;
output [15:0] RCVDATA;
output [15:0] CLKCNT;
reg [3:0] cnt;
reg [15:0] regRcvData;
reg [15:0] regClkcnt;
always @(CLK or RST) // both edge of CLK, i need to capture data1 and data2.
begin
if(RST)
begin
regRcvData <= 0;
cnt <= 4'b0000;
regRcvData <= 0;
regClkcnt <= 0;
end
else
begin
// push 2bits into register
regRcvData <= {regRcvData[13:0], DATA1, DATA2};
if(cnt == 4'b1000) cnt <= 0;
else cnt <= cnt + 1;
if(regClkcnt == 16'hFFFF) regClkcnt <= 0;
else regClkcnt <= regClkcnt + 1;
end
end
assign OE = (cnt == 4'b1000 ? 1 : 0);
assign RCVDATA = regRcvData;
assign CLKCNT = regClkcnt;
endmodule
************************************************************************