module
rglight(clk,clrn,yzflag,flag,LED,t1,t2,q1,q2)
/*--定义了一个rglight模块,估计是控制红灯和绿灯用的,后面是变量--*/
input clk,clrn
/*--定义输入端口,这俩应该是时钟--*/
input [7:0] q1,q2
/*--定义输入端口,8bit数据--*/
output reg yzflag
/*--定义输出端口,目测是黄灯状态控制变量,0/1--*/
output reg[1:0] flag
/*--定义输出端口,也是什么状态,2bit数据--*/
output reg[7:0] LED
/*--定义输出端口,应该用来控制LED灯,8bit--*/
output reg[7:0] t1,t2
/*--定义输出端口,应该是计时相关的变量,兄卜8bit,估计用来输羡信穗出给黄灯控制模块用的--*/
reg[7:0] rtime,gtime,ytime,rtime1='h20,gtime1='h16
/*--红灯、绿灯、黄灯的时间? rtime1赋初值 十六进制20,也就是十进制32,gtime1 十进制22--*/
reg[1:0] z
/*--定义变量z,后面根据z的状态00、01、10、11执行循环--*/
后面是程序的主体 实现的功能大致是倒计时的功能 不断的循环 只是部分程序 我也看不明白
module contr_1(lod,clk,aq,qa,d) //模块开始input[7:0] aq //输入单字节aq
input clk //输入时钟信号
output reg[7:0] qa //输出8为寄存器类型
output reg[11:0]d //输出12位寄存器类型
output reg lod //输出寄存器类型
reg [1:0] qc //2为寄存型明器类型qc
initial begin qa='h19d='b001100001100end //初始化 qa、d
always @(negedge clk ) // 时钟下烂虚降沿执行本alway下面的语句
begin if (aq==0) lod=0 //
else lod=1 end //结束本进程
always @(negedge lod ) //LOD下降沿执行本alway下面的语句
begin qc=qc+1 //得到qc的值
case (qc) //执行CASE语句
0 :begin qa='h19d='b001100001100end //qc=0
1 :begin qa='h03d='b010100010100end //饥租燃qc=1
2 :begin qa='h09d='b100001100001end //qc=2
3 :begin qa='h03d='b100010100010end //qc=3
default :qa='h00 其他值
endcase //结束case
end //结束本进程
endmodule //结束模块
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)