刚开始的想法是
module cont16(clk,rst,en,load,cout,dout,data);
parameter value=10;
input clk,rst,en,load;
input [15:0] data;
output [15:0] dout;
output cout;
reg [15:0] q;
reg cout;
assign dout = q;
always @(posedge clk or posedge rst)
begin
if(rst)
begin
q<=0;
cout<=0;
end
else if(en)
begin
if(!load) q<=data;
else if(q>=(value/2-1))
begin
q=0;
cout=~cout;
end
else q<=q+1;
end
end
endmodule
但用仿真时发现当 load = 0时,发现不能做到自动加载。后来改了下
module lsyyx_1(clk,rst,en,load,cout,dout,data,count);
parameter value=10000;
input clk,rst,en