问题标签 [elaboration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
105 浏览

verilog - 在 Verilog 综合中从外部源接收输入时出现多驱动问题

我正在尝试进行的合成是在 GCD 算法有限状态机上进行的,该算法使用“如果更大则减去”方法工作。我将附上代码并尝试制定一个体面的问题。

首先,A 和 B 是电线,它们将通过外部源(测试台中的一些文本文件)接收要比较的数字列表。

A_reg 和 B_reg 是中间寄存器,用于保存我们正在检查“if”语句的数字,

Aint_reg 和 Bint_reg 是寄存器,在操作后保留寄存器的中间值,仅在时钟上升时将它们发送回 A_reg 和 B_reg,

act 决定机器是否处于“开启”模式并可以执行算法

nrst 是负复位切换

问题是如何形成的:

你可以看到,一开始,有一个if(act == 0)条件。它被放在那里是为了确保 A、B 线上的值(从外部接收)将进入那里的寄存器,而不是在我们处于这种if(~nrst)情况时将它们输入到顺序块中,因为在重置。

这将我们带到了当前的问题——我知道在顺序块和组合块中为 A 和 B 赋值是造成问题的原因,但我找不到替代方案。

ps 我正在使用的事实A_reg = A创建了闩锁,因为我没有分配给A_reg其他任何地方,这是另一个问题,因为写
Aint_reg = A_reg; A_reg = Aint_reg;
来满足闩锁并不适合我。

ps2。我尝试在网站上查看类似的问题,但由于我对该主题缺乏足够的知识,我无法将我的问题与那里的问题联系起来

我很乐意得到任何帮助,谢谢

编辑:我删除了 if(~nrst) 顺序块中的非阻塞分配,以免在A_reg <= 0那里和A_reg = A组合块中进行多重分配,但是多重分配问题仍然以某种方式对其进行了错误处理

EDIT2:似乎我忘记了一个基本的事情 - 不要在两个不同的“总是”块中分配给同一个变量,但我只是想不出一个足够好的解决方案来将电线 A,B 分配给寄存器而不是在顺序块中再次分配给它

0 投票
1 回答
142 浏览

idris - 与 :elab 交互生成的证明不起作用

我正在尝试使用交互式证明助手来证明以下陈述:

我了解如何在没有详细说明的情况下证明它:

但是,我只是好奇为什么我在 REPL 中以交互方式证明此陈述存在问题。这是我所做的:

这是我得到的:

之后,我用这个证明替换了函数体:

但是,当我尝试编译它时,出现以下错误:

所以我的问题是为什么相同的证明在 REPL 中有效,但如果写在文件中会失败?

0 投票
3 回答
300 浏览

segmentation-fault - 运行时细化期间的分段错误:Ada

我的程序在包详细说明部分出现段错误。我在正文的一个块中声明了一堆变量。它们都是带有 QLOCK、First ID Number、Last ID Number 和数据数组的记录。所有不同的类型,因为每条记录的数据和 ID 范围略有不同。

这些类型都在同一个包规范 (SMO_Types) 中定义,但只有其中一个会导致段错误。

Ada 捕获此段错误并引发存储错误,因此输出如下所示

引发 STORAGE_ERROR : s-intman.adb:136 显式引发

我试图通过放置 Elaborate_All(SMO_Types); 来强制制定顺序;

它在运行时仍然存在段错误。

当我注释掉该声明和该单个变量的任何用途时,它工作正常。

*** 编辑:这里是类型(忽略 EX1 与 EX2 与 EX3 的奇怪顺序,这不是重新输入错字。这是它们在旧代码中的样子)

0 投票
4 回答
442 浏览

c++ - 为什么在 C++ 的类指针声明中使用 'struct' 关键字

在 C++ 中声明类指针变量时,何时以及为什么要使用“struct”关键字?

我在嵌入式环境中看到了这一点,所以我怀疑这是 C 的某种保留。我已经看到了很多关于在声明结构对象时何时使用“struct”关键字的解释,因为它与 C 中的命名空间有关(在这里),但我找不到任何人谈论为什么在声明类指针变量时可能会使用它。

例如,在 CFoo.h 中:

后来在不同的班级:

0 投票
0 回答
9 浏览

verification - 门级验证问题

运行 GLS 验证时,出现一些与“未连接输出端口”相关的错误,在 GLS 中很常见,我需要避免这些错误,如何避免这些错误?

0 投票
1 回答
91 浏览

initialization - Ada:声明和分配开销

我对 Ada 程序中的初始化很好奇:假设我有以下程序:

分配是否应该Another_Bar具有相同的开销

我的问题本质上是两个分配是否生成相同的汇编指令并因此速度相等?(没有详细说明目标机器)