Hala Medhat Assignement - 4

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

timescale 1ns / 1ps`

//////////////////////////////////////////////////////////////////////////////////
:Company //
:Engineer //
//
Create Date: 20:54:58 05/02/2024 //
:Design Name //
Module Name: PWM //
:Project Name //
:Target Devices //
:Tool versions //
:Description //
//
:Dependencies //
//
:Revision //
Revision 0.01 - File Created //
:Additional Comments //
//
//////////////////////////////////////////////////////////////////////////////////
(module PWM
,input wire [3:0] sw
,input wire clk,reset
output wire pwm_out
;)

;reg [3:0] r_reg,r_next

always @(posedge clk, posedge reset )


begin
;if(reset) r_reg<=4'b0000
;else r_reg<=r_next
end

)*(@ always
;r_next=r_reg+1

;assign pwm_out=(r_reg<sw)

endmodule
timescale 1ns / 1ps`

////////////////////////////////////////////////////////////////////////////////
:Company //
:Engineer //
//
Create Date: 22:01:18 05/02/2024 //
Design Name: PWM //
Module Name: E:/New folder/PWM/pwm_test.v //
Project Name: PWM //
:Target Device //
:Tool versions //
:Description //
//
Verilog Test Fixture created by ISE for module: PWM //
//
:Dependencies //
//
:Revision //
Revision 0.01 - File Created //
:Additional Comments //
//
////////////////////////////////////////////////////////////////////////////////

;module pwm_test

Inputs //
;reg [3:0] sw
;reg clk
;reg reset

Outputs //
;wire pwm_out

Instantiate the Unit Under Test (UUT) //


( PWM uut
,sw(sw).
,clk(clk).
,reset(reset).
pwm_out(pwm_out).
;)

;localparam T = 20

initial begin
;reset = 1
;)T/2(#
;reset = 0
end

initial begin
;clk = 0
forever
;clk = ~clk )T/2(#
end

initial begin
;)negedge reset(@
;sw=0

;)negedge clk(@
;sw=16

;)negedge clk(@
;sw=0.5*16

;)negedge clk(@
;sw=0.75*16

end

endmodule

You might also like