mirror of
https://github.com/supleed2/EIE4-FYP.git
synced 2024-12-22 14:15:50 +00:00
Add Sawtooth Generator Block
This commit is contained in:
parent
768d74f2e4
commit
a473a6ff9c
39
rtl/genSaw.sv
Normal file
39
rtl/genSaw.sv
Normal file
|
@ -0,0 +1,39 @@
|
|||
`default_nettype none
|
||||
|
||||
module genSaw
|
||||
( input var i_clk48
|
||||
, input var i_rst48_n
|
||||
, input var i_pause
|
||||
, input var [23:0] i_tf
|
||||
, output var [47:0] o_lr
|
||||
, output var o_new_pulse
|
||||
);
|
||||
|
||||
logic [8:0] clk_div;
|
||||
always_ff @(posedge i_clk48)
|
||||
if (!i_rst48_n) clk_div <= 0;
|
||||
else if (clk_div == 9'd500) clk_div <= 0;
|
||||
else clk_div <= clk_div + 1;
|
||||
|
||||
logic clk_48k;
|
||||
always_ff @(posedge i_clk48)
|
||||
if (!i_rst48_n) clk_48k <= 0;
|
||||
else if (clk_div == 9'd500) clk_48k <= ~clk_48k;
|
||||
|
||||
logic clk_48k_past;
|
||||
always_ff @(posedge i_clk48)
|
||||
clk_48k_past <= clk_48k;
|
||||
|
||||
assign o_new_pulse = clk_48k && !clk_48k_past;
|
||||
|
||||
logic [23:0] saw_step;
|
||||
assign saw_step = (24'd699 * i_tf) >> 1;
|
||||
|
||||
logic [23:0] waveform;
|
||||
always_ff @(posedge clk_48k)
|
||||
if (!i_rst48_n) waveform <= '0;
|
||||
else if (!i_pause) waveform <= waveform + saw_step;
|
||||
|
||||
assign o_lr = {waveform, waveform};
|
||||
|
||||
endmodule
|
Loading…
Reference in a new issue