FPGA学习记录(1)——8分频

FPGA学习记录

题目一:设计8分频

题目描述

系统输入时钟clk为100MHz;
低电平复位有效,信号为rst_n;
要求输出时钟o_clk是12.5MHz;
(结合计数器的知识,将系统输入时钟进行分频)

设计思路

首先计算时钟,可以看出输入端时钟频率是输出时钟频率的8倍,是一个8分频的设计。输出频率变低8倍,相当于周期时间增加8倍。所以新的周期o_clk的一个周期时长相当于8个输入时钟周期clk。
基于该思路,设计一个8位的计数器out,该计数器从0到7一个循环。每当输入时钟的上升沿到来,计数器+1,其变化过程为
0000
0001
0010
0011
0100
0101
0110
0111
可以明显看出当计数器计数0到3时,out[2]=0,当计数器计数4到7时,out[2]=1。以此为分界线,将o_clk分为标准占空比的时钟。当out[2]=0时,o_clk低电平,反之为高电平。

模块代码

module counter(out
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
8选1选择器可以用FPGA实现,其中FPGA是一种可编程逻辑器件,可以通过编程来实现各种数字电路。下面是一个简单的8选1选择器的FPGA实现过程: 1. 首先,我们需要使用HDL语言(如Verilog或VHDL)来描述8选1选择器的行为和功能。在这个例子中,我们使用Verilog来实现。 2. 在Verilog代码中,我们需要定义8个输入信号和1个输出信号。这些输入信号表示8个不同的输入,输出信号表示选中的输入。 3. 在代码中,我们需要使用一个3位二进制编码器来选择输入信号。这个编码器将8个输入信号编码为3位二进制数,然后将这个编码器的输出与8个输入信号的“与”门相连。 4. 最后,我们需要使用一个多路选择器来选择编码器的输出,并将其作为输出信号。这个多路选择器可以通过使用FPGA内部的LUT(查找表)来实现。 下面是一个简单的Verilog代码示例,用于实现8选1选择器: ``` module mux8to1 ( input [7:0] in, input [2:0] sel, output reg out ); always @ (*) begin case (sel) 3'b000: out = in[0]; 3'b001: out = in[1]; 3'b010: out = in[2]; 3'b011: out = in[3]; 3'b100: out = in[4]; 3'b101: out = in[5]; 3'b110: out = in[6]; 3'b111: out = in[7]; endcase end endmodule ``` 这里我们使用了一个case语句来实现多路选择器的逻辑。在这个例子中,我们定义了8个输入信号(in[0]到in[7]),一个输出信号(out),以及一个3位二进制选择器(sel)。通过使用case语句,我们可以根据选择器的值选择正确的输入信号,并将其输出到输出信号中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值