2011-10-18 11:47:32 +02:00

55 lines
1.0 KiB
Plaintext

module somemod (input a,b,c
output y)
asign y = (~a | b) & c;
endmudule
module somemod2 (input a,b,c
output y)
wire n1,n2
NOT not1(n1,a)
OR or2(n2,n1,b)
AND and2(y,n2,c)
endmudule
module counter (input clk, enable, sreset, areset, set, [3:0] value
parameter max=15
output reg[3:0] y)
initial y = 0
always @ (posedge clk, posendge areset)
begin
if(areset) y <= 0
else if(sreset)
y <= 0;
else if(set)
y <= value
else if(enable)
if(y>max)
y <= 0
y <= y + 1 ;
end
endmodule
module testbenchcounter (input clk)
wire enable,sreset,areset,set, [3:0]value
initial enable = 0 sreset = 0, areset = 0, set = 0, [3:0]value = 0
counter c[.max = 5](clk,enable,sreset,areset,set, [3:0]value);
#7 asign sreset = 0;
#1 asign sreset = 1;
#3
endmodule