- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直用它来检测上升沿:
if (clk'event and clk='1') then
但这也可以使用:
如果上升沿(clk)则
阅读this post ,推荐rising_edge(clk)
,但也有a comment表明 rising_edge(clk)
可能会导致错误的行为。
我无法决定将来选择哪一个,是继续使用 (clk'event and clk='1')
还是采用 rising_edge(clk)
.
这两者有什么实际经验吗?有什么偏好吗?
谢谢!
最佳答案
rising_edge 定义为:
FUNCTION rising_edge (SIGNAL s : std_ulogic) RETURN BOOLEAN IS
BEGIN
RETURN (s'EVENT AND (To_X01(s) = '1') AND
(To_X01(s'LAST_VALUE) = '0'));
END;
FUNCTION To_X01 ( s : std_ulogic ) RETURN X01 IS
BEGIN
RETURN (cvt_to_x01(s));
END;
CONSTANT cvt_to_x01 : logic_x01_table := (
'X', -- 'U'
'X', -- 'X'
'0', -- '0'
'1', -- '1'
'X', -- 'Z'
'X', -- 'W'
'0', -- 'L'
'1', -- 'H'
'X' -- '-'
);
如果您的时钟仅从 0 到 1,以及从 1 到 0,则rising_edge 将产生相同的代码。否则,您可以解释差异。
就我个人而言,我的时钟只会从 0 到 1,反之亦然。我发现 rising_edge(clk)
比 (clk'event and clk = '1')
变体更具描述性。
关于vhdl - clk'event 与rising_edge(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15205202/
有什么区别吗 @(posedge Clk); a<= 1'b1; 和 @(posedge Clk) a<= 1'b1; 注意 Clk 后面的分号。我在浏览测试平台时遇到了类似的代码行。我做
我正在为莱迪思 FPGA 学习和编程 VHDL,以模仿 74HCT245 的功能。以下是我的代码。 我不断收到语句不可合成,因为它在 NOT(时钟边沿)条件下不保持其值。 VHDL-1242 错误,
我在 VHDL 中遇到了两种风格的流程语句。 process(clk) begin if rising_edge(clk) ....do something.... 另一个是 process
我已经为 spartan 3E 板的 VGA Controller 编写了 VHDL 代码。该代码在没有下面代码中的 reset 和 clk 过程的情况下模拟并运行良好。但是在插入 process(r
所以我遇到了一些我必须复制的旧代码,但它无法使用新的 Xilinx 编译器进行编译,所以我需要弄清楚它到底做了什么。我有这样的事情: if rising_edge(clk) then —do s
我有一个大型仿真测试平台,它正在执行两个 Kintex Ultrascale FPGA 之间的接口(interface)。我遇到了最奇怪的问题:我无法触发rising_edge(CLK) 语句。 在设
有没有一种方法可以衡量在 Visual C++ 中我的 C++ 代码的特定部分花费了多少时间? 最佳答案 您是仅在调试时需要它,还是在您制作的应用程序中需要它?我可以告诉您一种仅用于调试的技术: 在起
我是一名优秀的程序员,十分优秀!