经过上一章的了解
组合电路的最大优势就是能直接根据输入进行输出
但其也有很多的缺点:占大量的电路资源,功耗较大,电路固定…
这一次我们来讲基本的时序电路,写一个简单的时序控制电路
再在此基础上将之前的组合电路乘法器改成时序电路
首先我们要来了解下安路FPGA的时钟信号
安路FPGA的外部24Mhz晶振信号由k14号引脚提供
使用 “IO Constraint” 引脚映射工具
将veilog模块的某一输入端口映射到k14引脚上即可得到24Mhz的时钟信号
先来设计个简单的 “可变分频器”
代码如下:
module Start(
input clk,
input button,
output[2:0] led
);
reg[31:0] pll,cnt;
reg[2:0] out;
assign led = ~out;
initial begin
pll = 32'd24000000;
cnt = 32'd0;
out = 3'b001;
end
always @(posedge clk )begin
if(cnt <= pll) begin
cnt = cnt + 32'd1;
end
else begin
cnt = 32'd0;
out = out << 1;
if(out == 3'd0)begin
out = 3'b001;
end
end
end
integer i=1;
always @(posedge button)begin
case(i)
1:begin
i=2;
pll