不随便 2021-04-10 10:50 采纳率: 0%
浏览 22

vivado如何应用现成的二路选通器实现功能?fpga implement 布局布线 综合

用的fpga开发板为zynq。在FPGA上实现简单的二路选通时,vivado最终还是通过LUT来实现该逻辑功能,但是FPGA内部本来就有现成的二路选通器,请问是否有什么方法可以直接通过现成的二路选通结构实现而不是通过查找表实现二路选通的功能?

如图高亮部分为实际通过LUT实现的,右上角为现成的二路选通结构

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-18 17:20
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    在FPGA内部通常会存在专门的MUX(多路选择器)结构用于实现二路选通功能。这些MUX结构可以通过特定的语法或者约束来告诉综合工具在综合时直接使用内部的MUX资源而不是通过LUT实现。在Vivado中,可以通过使用`HDL compiler directives`或`synthesis pragmas`来指定使用MUX资源。具体步骤如下:
    1. 在Verilog代码中使用(* synthesis mux_control="yes" *)指令告诉综合工具使用MUX资源。示例代码如下:
    module mux_example (
        input wire sel,
        input wire a,
        input wire b,
        output wire y
    );
    (* synthesis mux_control="yes" *)
    assign y = sel ? b : a;
    endmodule
    
    1. 添加约束文件,明确指定综合工具使用MUX资源来实现功能。示例约束文件如下:
    set_directive_mux_control Y inst_name
    

    其中inst_name是MUX实例的名称,需要根据实际情况在约束文件中进行指定。 通过以上步骤,可以告诉综合工具在综合时使用内部的MUX资源来实现二路选通功能而不是通过LUT。这样可以提高性能和资源利用率。 希望以上解答对你有所帮助,如果需要进一步的示例代码或者解释,请随时提出。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀