- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 VHDL-2008 中使用 to_01
转换函数时出现一些意外行为。我的期望是可以清楚地解释为高或低的向量位分别映射到“1”和“0”。剩余的向量位应转换为“0”位。但是,使用下面描述的代码,我将整个向量转换为全 '0'。
这种行为正确吗?或者这是模拟器软件(ALDEC Riviera-PRO)中的错误?
是否有任何符合我期望的 IEEE 函数,还是我必须编写自己的函数才能实现?
library ieee;
use ieee.std_logic_1164.all;
entity test_to_01 is
end entity test_to_01;
architecture rtl of test_to_01 is
signal s_test_in : std_logic_vector(8 downto 0) := "UX01ZWLH-";
signal s_test_out : std_logic_vector(8 downto 0);
begin
s_test_out <= to_01(s_test_in);
end architecture rtl;
最佳答案
观察到的行为是正确的行为。下面是关于这方面的一点历史。
在 2008 年,我们将所有强度降低操作传播到所有 std_logic 系列包。无论好坏,to_01 的历史实现都来自 numeric_std,并且完全按照现在的方式实现。以下是我在网上找到的较旧的实现:
function TO_01(S : SIGNED ; xmap : STD_LOGIC:= '0') return SIGNED is
variable RESULT: SIGNED(S'length-1 downto 0);
variable bad_element : boolean := FALSE;
alias xs : SIGNED(s'length-1 downto 0) is S;
begin
for i in RESULT'range loop
case xs(i) is
when '0' | 'L' => RESULT(i):='0';
when '1' | 'H' => RESULT(i):='1';
when others => bad_element := TRUE;
end case;
end loop;
if bad_element then
assert NO_WARNING
report "numeric_std.TO_01: Array Element not in {0,1,H,L}"
severity warning;
for i in RESULT'range loop
RESULT(i) := xmap; -- standard fixup
end loop;
end if;
return RESULT;
end TO_01;
VHDL WG 的主要指令之一是不破坏旧代码。在这种情况下,这个目标似乎提出了一个可能不太理想的实现。
如果您想要不同的东西,您可以随时将其提交给标准的下一次修订。它必须有一个不同的名称。请注意,我们目前正在关闭 VHDL-2018,因此这将是之后的修订版。
请注意,IEEE P1076 WG 是一个基于个人的工作组。这意味着有经验的用户(例如您自己)正在参与其中。通常,在标准修订中完成的工作量是巨大的。因此,我们总是需要更多积极的参与者。特别是在包装上工作。参见 eda-twiki.org 和 http://www.eda-twiki.org/cgi-bin/view.cgi/P1076/WebHome
关于VHDL-2008 to_01 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47430670/
我认为 try 总是带有 symbol,比如 foo.try(:to_s?)。但我发现 foo.try(&:to_s?) 也可以,但我找不到它们之间的区别。 它们之间有区别吗? 最佳答案 foo.tr
这个问题在这里已经有了答案: How do I print out the contents of an object in Rails for easy debugging? (9 个回答) 关闭
当我使用 puts 时,我重写了 to_s 方法以获得漂亮的输出,但同时我似乎失去了检查对象的能力。有没有办法在覆盖 to_s 的同时获得 inspect 的正常输出? class Person
我在方法中调用 to_s: $ def my_function(num) $ number = num.to_s.split(//) $ puts number $ end $ my
我很好奇。下面的代码片段产生 FrozenError 是否令人惊讶? ?神奇评论# frozen_string_literal: true不存在。 n = nil s = n.to_s s.force
我编写了一个类,它的作用类似于另一个类的数组。我有一个 to_s 方法,当按如下方式使用时,它以类似于数组的方式返回: array = [1, 2, 3, 4] puts array 这导致输出: 1
我正在处理 Codewars Ruby 问题,但不理解我看到的错误。以下是说明: Coding decimal numbers with factorials is a way of writing
查看下面 puts 语句输出的正确方法是什么?对于这样一个简单的问题,我深表歉意……我对 ruby 有点生疏。 github repo require 'active_support' require
我有一个救援 block ,它检查抛出的异常是否正确,如下所示: rescue Exception if $!.to_s() != "myException" Err("U
我正在用 Ruby 构建一个简单的工厂,它返回一个 Callable(在本例中是一个 Lambda),它知道如何转换为传递的类型的名称(例如 String.name # => 'String'). 为
Peter Cooper 的 Beginning Ruby 中关于多态性的示例之一涉及 to_s 方法。他举了这个例子: puts 1000.to_s puts [1, 2, 3].to_s puts
class A def initialize(string, number) @string = string @number = number end def to_s
我有以下算法(它搜索二进制表示也是回文的回文): #!/usr/bin/env ruby class Runner attr_accessor :min, :max, :sum def ini
让我们说: n = 5 n.to_s p n n 的结果仍然是 5 而不是 "5"。将原始变量 n 替换为我新转换的 n 而无需执行以下操作的最短方法是什么: n = 5 a = n.to_s p a
在“What does it mean to use the name of a class for string interpolation?”中,Candide 建议字符串中的 #{} 隐式调用
我不确定这是否是一个错误。但是我一直在玩big我不明白为什么这段代码会这样工作: https://carc.in/#/r/2w96 代码 require "big" x = BigInt.new(1
如果输入是整个数据帧,则按照我读过的方式在数据帧上应用 pandas to_numeric 或 to_datetime 函数可以正常工作,但如果输入是数据帧的多个列的一部分则不行。 我是做错了什么还是
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
就这么简单 c = :cat c.to_s puts c.class 给我符号,然后 c = "cat" c.to_sym puts c.class 给出字符串。我使用的 Ruby 是 1.9.3,文
Ruby 的 Array 类有内置方法 to_s 可以将数组转换为字符串。此方法也适用于多维数组。这个方法是如何实现的? 我想知道它,所以我可以重新实现一个方法 my_to_s(ary),它可以接收多
我是一名优秀的程序员,十分优秀!