ACTIV HDL - VHDL -“信号无法合成,同步描述错误”

2024-02-24

我在 Xilinx 中综合此代码时遇到错误。这个错误是:

“信号 Z_1 无法合成,同步描述错误”

entity uk3 is
     port(
         rst : in BIT;
         C : in INTEGER;
         clk : in BIT;
         S : out INTEGER
         );
end uk3;

--}} End of automatically maintained section

architecture uk3 of uk3 is
begin
    process (C,clk,rst)
    variable Z_1 : integer:=0;
    begin
        if rst='1' then Z_1:=0;
        elsif rst='0'and clk'event and clk='1'and C=1
            then 
            Z_1:=Z_1 + 1;
        elsif rst='0'and clk'event and clk='1'and C=2
            then
            Z_1:=Z_1 + 2;   
        else
            Z_1:=Z_1;
        end if;
        S<=Z_1;
        end process;

     -- enter your statements here --

end uk3;

why?


你有一个if子句包含对复位条件的检查,然后是两个单独的门控时钟条件,然后是一个else条款。我认为没有任何工具可以综合这一点,因为你不太可能真正想要你所描述的东西,而且无论如何都很难放入硬件中。您需要阅读有关 HDL 和同步设计基础知识的更多信息。

这样想一下:如果您像编译器一样从上到下逐行阅读您编写的代码,那么您实际上将如何构建执行您所描述的功能的硬件?如何构建一个硬件,使其在一个时钟上执行一项操作,在另一个时钟上执行另一项操作,以及在完全不应用时钟时执行第三项操作?如何在 FPGA LUT 中实现这一点?

简而言之,为了让你的代码正常工作,你需要摆脱else子句,无论如何它什么也不做,合成器通常不喜欢else or elsif- 时钟条件旁边的子句(if rising_egde(clk) or if clk'event and clk = '1')。的条件C应单独检查if主时钟语句中的子句。另外,去掉检查rst = '0' in the elsif条款。您已经检查过rst = '1' in the if声明和一份bit信号只能是'1' or '0'.

可合成的代码如下所示:

process (clk, rst)
   if rst = '1' then
       -- your reset condition
   elsif clk'event and clk = '1' then -- if you use a bit type clk, otherwise use elsif rising_edge(clk) then
       if signal = condition then
          -- whatever you need doing
       else
          -- whatever you need doing
       end if;
   end if;
end process;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ACTIV HDL - VHDL -“信号无法合成,同步描述错误” 的相关文章

  • 来自不同进程的VHDL驱动信号

    我对以下 VHDL 代码有一个小问题 process zbroji begin if rising edge zbroji then oduzima lt 0 ucitanPrvi lt 1 broj1 lt ulaz broj end i
  • 在 VHDL 中找到运算符“+”的“0”定义

    首先我想指出 这是我第一次尝试 VHDL 所以请客气一点 我想读取 X1 X4 输入并在输出处生成输入的总和 这是我的代码 library IEEE use IEEE STD LOGIC 1164 ALL entity counter of
  • 在 vhdl 中计算(并验证)以太网 FCS (crc32)

    我正在使用Spartan 3E 入门套件我正在尝试通过 100MBit 链路接收以太网帧 对于那些不知道的人 该板具有 PHY 芯片 暴露了 25MHz 的接收时钟 我 几乎 已经通过缓冲接收到的帧并通过串行链路重新发送它们来验证接收工作正
  • 整数到字符串在综合中出错(宽度不匹配)

    我正在尝试将整数转换为字符串 使用integer image val 并将其填充或限制为特定长度 我已经制作了这个函数 当我使用时它可以很好地完成工作report陈述并模拟 function integer2string pad val i
  • VHDL:正式端口“portName”没有实际值或默认值

    我在实例化 VHDL 模块 PWM 的 VHDL 测试平台上收到编译错误 正式端口 Duty Cycle 没有实际或默认值 当站在 dev to test PWM 代码行时会看到该错误 在实例化的 PWM 模块中 Duty Cycle st
  • VHDL:按钮去抖动(或不去抖动,视情况而定)

    我已阅读其他帖子 但似乎无法修复我的 我是 VHDL 新手 所以我确信这是一个简单的修复 简而言之 按钮没有防抖 代码编译和比特流程序 在测试台中 按下按钮可以工作 但输出 LED 不会改变 在板上 按下按钮会使随机 LED 亮起 我猜是因
  • 是否需要初始化?

    在VHDL中 创建信号或向量时是否需要初始化 如果忘记初始化信号或整数值会发生什么 In 模拟 如果你这样做not设置一个初始值 向量的每个元素都会得到default值 这是由 VHDL 语言规范定义的 对于枚举类型 这是枚举类型中定义的第
  • 使用“downto”进行 VHDL std_logic_vector 索引

    我想单独设置 std logic vector 的位 以便轻松设置单个位或位组的注释 这是我所拥有的 signal DataOut std logic vector 7 downto 0 DataOut lt 5 gt 1 Instruct
  • VHDL:进程块内的多个上升沿检测

    我对 VHDL 以及一般的数字电路 还很陌生 我正在尝试使用 BCD 样式块实现两位数的计数器 该电路的外部有一些按钮 按下这些按钮时 会将感兴趣的数字加一 很像闹钟 这是一个异步操作 会在某种形式的编辑模式下发生 外部强制 我编写的代码在
  • 在VHDL中初始化记录数组

    我有一条记录定义如下 type ifx t is record data std logic vector 127 downto 0 address std logic vector 19 downto 0 WrReq std logic
  • 是否可以使用循环创建同一组件的多个实例?

    我有一个组件 Component CAU is port CLK in std logic RESET in std logic START in std logic V DIRECTION in vector 3d P ORIGIN in
  • 将库添加到 Vivado 2014.4

    我对 Vivado 和 VHDL 还很陌生 我想要一些关于基本问题的指导 我猜我可以创建自己的库并在我的项目中使用它们 就像使用默认库和基本库一样 eg library IEEE use IEEE std logic 1164 ALL us
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • VHDL - iSIM 输出未初始化,不改变状态

    您好 我是一位 Xilinx 新用户 在如何在测试台中编写激励 模拟方面遇到了麻烦 我的输出 Kd 没有给我任何合理的值 并在移动并始终保持在 1 之前的前几个时钟周期给出 u 不确定我是否写了正确的刺激 但希望有人能帮助我 我的VHDL代
  • 在VHDL中将8位二进制数转换为BCD

    该算法众所周知 您进行 8 次左移 并在每次移位后检查个位 数十位或数百位 每个 4 位 如果它们超过 4 个 则将 3 个添加到该组中 依此类推 这是一个基于流程的解决方案 但不起作用 它会编译 但输出不是我想要的 有什么想法可能是什么问
  • VHDL 中的进程是可重入的吗?

    一个进程是否可以连续运行两次或多次VHDL 如果在进程的顺序执行未完成的情况下发生另一个事件 在敏感信号列表上 会发生什么 有可能还是我的VHDL流程中的模型完全错误 进程运行时不会发生任何事件 当进程被事件唤醒时 它会运行到完成 结束进程
  • vhdl中process语句的顺序执行

    对于vhdl中的process语句 据说process语句内部的执行顺序是连续的 我的问题是 请先看下面的代码 a b和c信号在进程语句中的if语句中是同时还是顺序分配给它们的新值 process clk is begin if risin
  • 学习 VHDL 的最佳方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • VHDL FSM多驱动网Q连接到常量驱动程序,其他驱动程序被忽略,我的代码有什么问题?

    这段代码是一个 FSM 它是一个摩尔机 艾莉莎 P 哈克 Alyssa P Hacker 有一只蜗牛 沿着纸带爬下去 上面有 1 和 0 蜗牛 每当最后两个时都会微笑 它爬过的数字是 01 设计摩尔和米利 蜗牛大脑的 FSM 代码如下所示
  • VHDL STD_LOGIC_VECTOR 通配符值

    我一直在尝试用 VHDL 代码为我在 Altera DE1 板上实现的简单 16 位处理器编写有限状态机 在有限状态机中 我有一个CASE处理不同 16 位指令的语句 这些指令由 16 位 STD LOGIC VECTOR 带入 FSM 但

随机推荐

  • C++中双冒号的全名

    如果我有课 class A public A void print private int value A A value 0 void A print cout lt lt value lt lt endl 最后两行中 符号的完整名称是什
  • 如何使用messagebox输出调试信息

    我正在使用 MessageBox 尝试进行一些手动调试 这就是我所想出的全部 我应该如何使其工作 private void DisplayMessageBoxText MessageBox Show Alert Message 您可以使用写
  • 关于使用遗留代码的建议

    我需要一些关于如何使用遗留代码的建议 不久前 我接到的任务是向报告应用程序添加一些报告 2005 年用 Struts 1 编写的 没什么大不了的 但是代码相当混乱 没有使用Action形式 基本上代码就是一个巨大的action 里面有很多i
  • Dockerfile 中的 Mongorestore

    我想创建一个启动 mongo 服务器并自动从以前的版本恢复的 Docker 映像mongodump启动时 这是我的图像 Dockerfile FROM mongo COPY dump home dump CMD mongorestore h
  • 无法删除 Qt 布局的子布局中的小部件

    我正在使用 Windows 版 Qt 5 5 0 在用于登录和注册的对话框中 我使用 QVBoxLayout 作为对话框的主布局 并将 QGridLayout 添加到 mainLayout 当我单击 注册 按钮时 它将添加太多用于注册的 L
  • 使用 ghc 编译 Haskell 代码时出现专业化警告

    尝试编译时出现以下错误 ghc make O2 Wall fforce recomp 1 of 1 编译主程序 isPrimeSmart hs isPrimeSmart o 规格构造 函数 wa v s2we lid 有两种调用模式 但限制
  • Ngrok:如何打开80端口

    我刚刚在本地计算机上安装了 ngrok 运行 ngrok http 80 照常 但是当我尝试访问80端口时 localhost 80 我收到此错误消息 与 http ngrok io 的连接已成功通过隧道连接到 您的 ngrok 客户端 但
  • 管道成功完成后 Bitbucket Webhook 触发

    我想在管道成功完成后触发 Webhook 我查看了触发器列表 但没有找到任何内容 是否有解决方法可以通过 Pipeliens 手动触发 Webhook 您可以使用构建状态已更新 https confluence atlassian com
  • 核心数据:观察某种类型实体的所有变化

    每当添加 更改 删除某种类型的实体时 我希望收到通知 我知道通过向managedObjectContext 但随后我必须搜索返回的三个集合以查看它们是否包含该类型的对象 我可以用filteredSetUsingPredicate 但是每次有
  • 无法理解 PcapNG 文件中的 802.11 数据帧格式

    I have PcapNG由 Wireshark 创建的文件 我尝试用它来解析python pcapng However I cannot figure out how to reconcile the output I receive f
  • 按下控制器时,UIBarButtonItemStyleDone 不会在导航栏中创建蓝色按钮

    我在几个不同的论坛上搜索过 似乎找不到这个问题的答案 我已将一个栏按钮项目添加到导航控制器并将其样式设置为 UIBarButtonItemStyleDone 当这是导航堆栈上的第一个控制器时 该按钮正确显示为蓝色 但是 当创建控制器并将其推
  • 派系问题算法设计

    我的算法课上的作业之一是设计一种穷举搜索算法来解决派系问题 也就是说 给定尺寸图n 该算法应该确定是否存在尺寸的完整子图k 我想我已经得到了答案 但我忍不住认为它可以改进 这是我所拥有的 版本1 input 由数组 A 0 表示的图n 1
  • React router dom v6 不会重定向到未找到

    所以我刚刚从react router domv5 到 v6 我认为 exact不再存在 因为它被省略了 但就我而言 它不起作用 如果找不到路由 则应重定向到not found页面 但无法弄清楚为什么它不起作用 它只是打印了一张白页 所以 这
  • 计算多种利率的利息

    我有一个存储利率的表 每个利率都有一个适用的开始日期 表中较晚的条目将取代较早的条目 我必须使用开始日期 结束日期和金额查询该表 根据这些值 我需要最终得到一个考虑了日期范围内不同利率的总利息金额 CREATE TABLE dbo Inte
  • 实体框架从 saveChanges 中的上下文获取用户

    我的解决方案中有两个项目 UI 作为 mvc 和首先用于实体模型代码的类项目 我的模型中有多个实体 但现在我需要通过新的审计字段来扩展它们 我需要保存谁更改了实体 我添加了新界面 public interface IAuditable
  • 如何在 PostgreSQL 数据库中存储 NumPy 数组?

    目前 我正在创建 npz 压缩文件来存储大型 NumPy 数组 因此 每次我需要从文件加载数组时 由于这是一个频繁的过程 我就考虑将 NumPy 数组存储在数据库中 我正在使用 PostgreSQL 数据库 您可以使用 bytea 列来完成
  • 多表之间的SQL映射

    这是一个SQL设计问题 首先 设置 我有三张桌子 A 根据对链接服务器的查询自动填充 该表中的数据不能更改 B 只有十几行 包含 As 集合的名称 AtoB 它是映射表 通过它将 As 组织成命名集合 两列上都有外键 例如 A 包含 Gir
  • 由于 WordPress,无法访问我的文件夹 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经在我的网站上安装了 WordPress 并且正在使用永久链接 但是我网站的主根目录中有一个名为 x 的文件夹 当我键入时 我现在无法访问它htt
  • 使用 TFS Git 进行分叉

    我现在在一个使用 TFS 和 Git 的项目中 我意识到我将无法再分叉了 所以我想我会问你们对此解决方案的看法 我遇到的问题是我有一个 基础 项目 它将被我们拥有的每个客户重复使用 但每个客户都会有一定程度的修改 大约5 10 我计划将项目
  • ACTIV HDL - VHDL -“信号无法合成,同步描述错误”

    我在 Xilinx 中综合此代码时遇到错误 这个错误是 信号 Z 1 无法合成 同步描述错误 entity uk3 is port rst in BIT C in INTEGER clk in BIT S out INTEGER end u