上传文件至 try_smg
This commit is contained in:
parent
6287315eef
commit
223768a057
|
|
@ -0,0 +1,15 @@
|
||||||
|
module counter
|
||||||
|
(
|
||||||
|
input clk, enable, rst_n,
|
||||||
|
output reg [8-1:0] count
|
||||||
|
);
|
||||||
|
|
||||||
|
always @ (posedge clk or negedge rst_n)
|
||||||
|
begin
|
||||||
|
if (!rst_n)
|
||||||
|
count <= 0;
|
||||||
|
else if (enable == 1'b1)
|
||||||
|
count <= count + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
module exp6_changed(
|
||||||
|
input clk,pbl,enable,
|
||||||
|
output [7-1:0] led_high,led_low
|
||||||
|
);
|
||||||
|
|
||||||
|
wire clk_3Hz;
|
||||||
|
wire[7:0] cnt;
|
||||||
|
reg clk_3Hz_ff0;
|
||||||
|
wire positive_edge_clk3Hz;
|
||||||
|
|
||||||
|
freq_div #(
|
||||||
|
.n(3)
|
||||||
|
) u_freq_div(
|
||||||
|
.clk(clk),
|
||||||
|
.rst_n(pbl),
|
||||||
|
.freqdiv_out(clk_3Hz)
|
||||||
|
);
|
||||||
|
|
||||||
|
always @ (posedge clk or negedge pbl)
|
||||||
|
begin
|
||||||
|
if (!pbl)
|
||||||
|
clk_3Hz_ff0 <= 0;
|
||||||
|
else
|
||||||
|
clk_3Hz_ff0 <= clk_3Hz;
|
||||||
|
end
|
||||||
|
|
||||||
|
assign positive_edge_clk3Hz = clk_3Hz==1 && clk_3Hz_ff0==0;
|
||||||
|
|
||||||
|
counter u_counter(
|
||||||
|
.clk(clk),
|
||||||
|
.enable(enable && positive_edge_clk3Hz),
|
||||||
|
.rst_n(pbl),
|
||||||
|
.count(cnt)
|
||||||
|
);
|
||||||
|
|
||||||
|
seg7_led u_seg7_led_high(
|
||||||
|
.data_in(cnt[7:4]),
|
||||||
|
.led_out(led_high)
|
||||||
|
);
|
||||||
|
|
||||||
|
seg7_led u_seg7_led_low(
|
||||||
|
.data_in(cnt[3:0]),
|
||||||
|
.led_out(led_low)
|
||||||
|
);
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
module freq_div
|
||||||
|
#(
|
||||||
|
parameter n
|
||||||
|
)
|
||||||
|
(
|
||||||
|
input clk,rst_n,
|
||||||
|
output freqdiv_out
|
||||||
|
);
|
||||||
|
|
||||||
|
reg [n-1:0] count;
|
||||||
|
|
||||||
|
always @(posedge clk or negedge rst_n) begin
|
||||||
|
if (!rst_n)
|
||||||
|
count <= 0;
|
||||||
|
else
|
||||||
|
count <= count + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
assign freqdiv_out = count[n-1];
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
module seg7_led(
|
||||||
|
input [4-1:0] data_in,
|
||||||
|
output reg [7-1:0] led_out
|
||||||
|
);
|
||||||
|
always @(*) begin
|
||||||
|
case(data_in)
|
||||||
|
4'h0:led_out = 7'b1000000;
|
||||||
|
4'h1:led_out = 7'b1111001;
|
||||||
|
4'h2:led_out = 7'b0100100;
|
||||||
|
4'h3:led_out = 7'b0110000;
|
||||||
|
4'h4:led_out = 7'b0011001;
|
||||||
|
4'h5:led_out = 7'b0010010;
|
||||||
|
4'h6:led_out = 7'b0000010;
|
||||||
|
4'h7:led_out = 7'b1111000;
|
||||||
|
4'h8:led_out = 7'b0000000;
|
||||||
|
4'h9:led_out = 7'b0010000;
|
||||||
|
4'ha:led_out = 7'b0001000;
|
||||||
|
4'hb:led_out = 7'b0000011;
|
||||||
|
4'hc:led_out = 7'b1000110;
|
||||||
|
4'hd:led_out = 7'b0100001;
|
||||||
|
4'he:led_out = 7'b0000110;
|
||||||
|
4'hf:led_out = 7'b0001110;
|
||||||
|
default:led_out = 7'b1111111;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endmodule
|
||||||
Loading…
Reference in New Issue