FPGA 学习笔记——原语 BUFIO BUFIO

参考博客:

https://blog.csdn.net/lg2lh/article/details/45375317

https://blog.csdn.net/lg2lh/article/details/45220283

BUFR是区域时钟缓冲器,要进入区域时钟网络,必须例化BUFR。

 BUFR #(
      .BUFR_DIVIDE("BYPASS"),   // Values: "BYPASS, 1, 2, 3, 4, 5, 6, 7, 8" 
      .SIM_DEVICE("7SERIES")  // Must be set to "7SERIES" 
   )
   BUFR_inst (
      .O(O),     // 1-bit output: Clock output port
      .CE(CE),   // 1-bit input: Active high, clock enable (Divided modes only)
      .CLR(CLR), // 1-bit input: Active high, asynchronous clear (Divided modes only)
      .I(I)      // 1-bit input: Clock buffer input driven by an IBUF, MMCM or local interconnect
   );

 


 

module util_clkdiv (
  input   clk,
  input   clk_sel,
  output  clk_out
 );

parameter SIM_DEVICE = "7SERIES";
parameter SEL_0_DIV = "4";
parameter SEL_1_DIV = "2";

  wire clk_div_sel_0_s;
  wire clk_div_sel_1_s;

generate if (SIM_DEVICE == "7SERIES") begin

  BUFR #(
    .BUFR_DIVIDE(SEL_0_DIV),
    .SIM_DEVICE("7SERIES")
  ) clk_divide_sel_0 (
    .I(clk),
    .CE(1),
    .CLR(0),
    .O(clk_div_sel_0_s));

  BUFR #(
    .BUFR_DIVIDE(SEL_1_DIV),
    .SIM_DEVICE("7SERIES")
  ) clk_divide_sel_1 (
    .I(clk),
    .CE(1),
    .CLR(0),
    .O(clk_div_sel_1_s));

end else if (SIM_DEVICE == "ULTRASCALE") begin

  BUFGCE_DIV #(
    .BUFGCE_DIVIDE(SEL_0_DIV)
  ) clk_divide_sel_0 (
    .I(clk),
    .CE(1),
    .CLR(0),
    .O(clk_div_sel_0_s));

  BUFGCE_DIV #(
    .BUFGCE_DIVIDE(SEL_1_DIV)
  ) clk_divide_sel_1 (
    .I(clk),
    .CE(1),
    .CLR(0),
    .O(clk_div_sel_1_s));

end endgenerate

  BUFGMUX_CTRL i_div_clk_gbuf (
    .I0(clk_div_sel_0_s), // 1-bit input: Clock input (S=0)
    .I1(clk_div_sel_1_s), // 1-bit input: Clock input (S=1)
    .S(clk_sel),
    .O (clk_out));

endmodule  // util_clkdiv

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
FPGA(Field-Programmable Gate Array)是一种可编程的集成电路芯片,它可以根据用户的需求进行动态重构。在FPGA中,IP核原语是一种经过验证和调试的可用于构建特定功能的复杂或通用的硬件模块。下面是一些常用的FPGA IP核原语: 1. 时钟管理IP核原语:可以生成、分配和分频时钟信号,提供时钟锁相环(PLL)和时钟分频器等功能。它们可以确保系统各个模块以正确的节奏运行,避免时钟冲突和时序问题。 2. 存储器控制器IP核原语:用于与不同类型的存储介质(如RAM、ROM、Flash等)进行交互。它们提供读写数据、地址译码、数据缓冲和错误检测等功能,方便存储器的管理和访问。 3. 串行通信IP核原语:用于串行通信接口的实现,如UART、SPI、I2C等。它们提供数据的转换和传输,允许FPGA与其他外部设备进行通信。 4. 视频处理IP核原语:用于视频信号的处理和处理,包括视频编码、解码、缩放、滤波、处理和显示等功能。它们可以提供图像和视频处理算法,支持各种视频标准和格式。 5. 数字信号处理(DSP)IP核原语:用于实现各种数字信号处理算法,如滤波器、FFT、FIR、IIR等。它们可以提供高性能和高速的数字信号处理能力,用于音频、视频、通信等领域。 6. 接口控制器IP核原语:用于各种外部接口的实现,如PCIe、USB、Ethernet等。它们提供了与外部设备的连接和数据传输功能,方便FPGA与其他系统的集成。 除了以上的IP核原语,还有许多其他常用的IP核原语,如乘法器、加法器、运算器、控制器等,它们可以用于构建各种复杂的硬件功能。FPGA IP核原语的使用可以节省开发时间和资源,并提供高度可靠和灵活的硬件设计方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bronceyang131

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

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

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

打赏作者

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

抵扣说明:

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

余额充值