module PRBS09t(clk, rst, en, ser_o, Tok);
// module 表明是顶层模块,有别于底层模块或 task 或 function
// PRBS09t 形如 C 语言中的函数名;
// (clk, rst, en, ser_o, Tok) 形如 C 语言中的参数,不过与硬件相关,即与芯片的管脚相连;
input clk, rst, en;
output ser_o, Tok;
reg ser_o, Tok;
//输入、输出端口声明
reg [8:0]PRBS;
//形如 C 语言中的局部变量
always @(posedge clk)
begin
if(!rst)
begin
PRBS <=9'b0101011;
ser_o <= 1'b0;
Tok <= 1'b0;
end
else if(en)
begin
PRBS <= {(PRBS[4]^PRBS[0]),PRBS[8:1]};
ser_o <= ~PRBS[0];
Tok <= 1'b1; //表明 PRBS 发送端正常工作
end
end
endmodule