设计具有4位分辨率的PWM电路并在仿真中验证其操作

时间:2019-11-13 00:41:50

标签: verilog xilinx hdl pmw

请需要用于Verilog HDL代码的测试台,以使用七个分段显示器来实现PWM(脉冲宽度调制)设计

三个组成部分:占空比寄存器,计数器和比较器 设备与工具Xilinx ISE 14.7 ISE Simulator(ISIM)Spartan®-3入门板

Verlilog文件: -------占空比寄存器.v --------

 module dc_register #(parameter N = 4)
 (
 input wire clk, wr_en, areset,
 input wire [N-1:0] in,
 output reg [N-1:0] val
 );
 always @(posedge(clk), posedge(areset))
 begin
 if(areset)
 val <= {N{1'b0}}; // asynchronous reset
 else if(wr_en)
 val <= in; // capture when write-enabled
 end
 endmodule

-------- Counter.v -------------

module counter
#(
   parameter N=4, // number of bits in counter
         M=10 // mod-M
)
(
input wire clk, reset,
output wire max_tick,
output wire [N-1:0] q
);

   //signal declaration
   reg [N-1:0] r_reg;
   wire [N-1:0] r_next;

   // body
   // register
   always @(posedge clk, posedge reset)
  if (reset)
     r_reg <= 0;
  else
     r_reg <= r_next;

   // next-state logic
   assign r_next = (r_reg==(M-1)) ? 0 : r_reg + 1;
   // output logic
   assign q = r_reg;
   assign max_tick = (r_reg==(M-1)) ? 1'b1 : 1'b0;

endmodule

-------- Comparator.v ---------

module comparator
(
   output A_lt_B, A_eq_B, A_gt_B,
   input [3: 0] A, B
);

assign A_lt_B = (A < B);
assign A_gt_B = (A > B);
assign A_eq_B = (A == B);


endmodule

------------测试台.v -----------

?需要吗?

0 个答案:

没有答案
相关问题