请需要用于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 -----------
?需要吗?