[Vivado] IP核学习之Binary Counter

具体参考Xilinx文档,pg121-c-counter-binary Version12.0。

一、Binary Counter有什么用?

Binary Counter是Vivado中的IP核,即二进制计数器。
二进制计数器可用于创建加法计数器、减法计数器和加 /减计数器,输出宽度可达 256位。
计数上限和增量值都是用户可编程的。当计数器到达上限时,下一个计数为零。除此之外,也可选用户可编程阈值输出。

二、Binary Counter怎么用?

基本参数设置

基本参数设置

重要参数

Implement using:可以设置计数器的实现类型为Fabric(FPGA互联矩阵和嵌入其中的CLBs)或DSP Slice(DSP48E2原语定义)。
Output Width:指定计数器的位宽。
Increment Value:指定计数器的十六进制表示的增量值。当Restrict Count为false时,有效范围为1到 2 O u t p u t W i d t h − 1 2^{Output Width}-1 2OutputWidth1;当 Restrict Count为true时,增量值的有效设置由公式控制 :

对于向上计数器,有 :
最终计数值(Final Count Value) / 增量值(Increment Value) = 整数

对于向下计数器,有:
( 2 O u t p u t W i d t h 2^{Output Width} 2OutputWidth - 最终计数值(Final Count Value)) / 增量值(Increment Value)=整数

Restrict Count:当Restrict Count为true时,计数器只向上 (或向下 )计数到最终计数值参数中指定的值。
当Restrict Count为false时,计数器计数到可以使用指定的输出位宽表示的最大值。此选项与向
上 /向下计数器选项和同步设置控制是互斥的。
Final Count Value:当选用Restrict Count时,该参数可指定计数器的上限,以十六进制表示。

Count Mode:此参数可指定计数器是向上计数UP,向下计数DOWN,还是在UP引脚上指定其方向 (向上 /向下 )(UPDOWN)。

其他参数

Loadable:Loadable = true时,允许输入端口 L[N:0]上 的值通过逻辑并加载到下一个有效时钟边沿的输出寄存器中。
Sync Threshold:当此参数等于 true时, THRESH0 生成组合输出。
Threshold Value:指定该值 THRESH0 作为十六进制值被激活的值。

控制参数设置

控制参数设置

重要参数

CE:指定是否包含时钟使能引脚。
SCLR:指定是否包含复位清零引脚。
Power-on Reset Init Value:指定上电复位时输出的初始值,以十六进制表示,与SCLR端口相斥。

其他参数

Init Value:以十六进制形式指定断言时 SINIT 输出初始化的值。如果 SINIT为 false,则忽略初始值。
SSET:指定是否包含SSET引脚。 SSET引脚在DSP Slice实现中无效。
SINIT:指定是否包含SINIT 引脚,当断言时,同步设置输出值为初始值定义的值。
注意: 如果SINIT存在,则既SCLR SSET不存在,也不存在。SINIT引脚在DSP Slice实现中无效。

Synchronous Set and Clear(Reset) Priority:该参数控制 fabric:SSET and SINIT,输入是否 SCLR, 合格 CE,
当设置为 Sync_Overrides_CE时,同步控制将覆盖 CE 信号;当设置为 CE_Overrides_Sync时,SCLR 仅当 CE 为高时有效。
注意:在结构原语上, SCLR and SSET 控件会覆盖 CE, ,因此选择 CE_Overrides_Sync通常会导致额外的逻辑。
Synchronous Controls and Clock Enable(CE) Priority:控制相对优先 SCLR 级and SSET。
当设置为 Reset_Overrides_Set时,SCLR 覆盖 SSET,默认值是Reset_Overrides_Set。因为这是原语排列的方式,设定 SSET 优先级需要额外的逻辑。

Latency Settings
Latency Configuration:自动或手动 ;自动设置最大速度的最佳延迟 ;手动允许用户将延迟设置为允许的值之一。
Latency:当 “延迟配置 ”为 “手动 ”时,用于设置时延。
Feedback Latency Configuration:自动或手动 ;自动设置最佳反馈延迟以达到最高速度 ;手动允许用户将反馈延迟设置为允许的值之一。
Feedback Latency:当 “反馈延迟配置 ”为 “手动 ”时,用于设置延迟。

端口说明

端口说明

信号输入/输出端口描述
CLKI上升沿时钟信号
UPI控制加/减计数器的计数方向,高电平时向上计数,低电平时向下计数
CEI高电平时钟使能
SCLRI同步清除,高电平时,输出强制为低电平
THRESH0O用户可编程阈值信号
Q[N:0]O计数器输出
L[N:0]I输入装载数据
LOADI负载控制信号
SSETI同步设置,高电平时,输出强制为高电平
SINITI同步初始化,高电平时,输出强制为用户设置的状态

实例化代码

    reg i_clk; // 时钟信号
    reg cen; // 高电平时,时钟启用
    wire rst; // 高电平时,输出清零
    wire [9:0] q; // 计数器输出
    assign rst = ~i_rst_n;
    c_counter_binary_0 rcount_1(
        .CLK(i_clk),
        .CE(cen),
        .SCLR(rst),
        .Q(q_1)
    );
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奕天者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值