- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么 Modelsim 提示组件实例化 i1?
Time: 0 ps Iteration: 1 Instance: /vhdl2_uppgift_1_extra_vhd_tst/i1
** Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.numeric_std.all;
LIBRARY work;
--Add in do-file
--set StdArithNoWarnings 1
---run 0 ns;
---set StdArithNoWarnings 0
---run 20 ms;
ENTITY vhdl2_uppgift_1_extra_vhd_tst IS
END vhdl2_uppgift_1_extra_vhd_tst;
ARCHITECTURE vhdl2_uppgift_1_extra_arch OF vhdl2_uppgift_1_extra_vhd_tst IS
-- constants
constant sys_clk_period: TIME:=20 ns;
-- signals
SIGNAL CLOCK_50 : STD_LOGIC;
SIGNAL KEY : STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL reset_n : STD_LOGIC;
SIGNAL VGA_B : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL VGA_BLANK_N : STD_LOGIC;
SIGNAL VGA_CLK : STD_LOGIC;
SIGNAL VGA_G : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL VGA_HS : STD_LOGIC;
SIGNAL VGA_R : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL VGA_VS : STD_LOGIC;
SIGNAL x : STD_LOGIC_VECTOR(9 DOWNTO 0);
SIGNAL y : STD_LOGIC_VECTOR(9 DOWNTO 0);
COMPONENT vhdl2_uppgift_1_extra
PORT (
CLOCK_50 : IN STD_LOGIC;
KEY : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
reset_n : IN STD_LOGIC;
VGA_B : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);
VGA_BLANK_N : BUFFER STD_LOGIC;
VGA_CLK : BUFFER STD_LOGIC;
VGA_G : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);
VGA_HS : BUFFER STD_LOGIC;
VGA_R : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);
VGA_VS : BUFFER STD_LOGIC;
x : BUFFER STD_LOGIC_VECTOR(9 DOWNTO 0);
y : BUFFER STD_LOGIC_VECTOR(9 DOWNTO 0)
);
END COMPONENT;
BEGIN
i1 : vhdl2_uppgift_1_extra
PORT MAP (
-- list connections between master ports and signals
CLOCK_50 => CLOCK_50,
KEY => KEY,
reset_n => reset_n,
VGA_B => VGA_B,
VGA_BLANK_N => VGA_BLANK_N,
VGA_CLK => VGA_CLK,
VGA_G => VGA_G,
VGA_HS => VGA_HS,
VGA_R => VGA_R,
VGA_VS => VGA_VS,
x => x,
y => y
);
clock : PROCESS
-- variable declarations
BEGIN
CLOCK_50 <= '0';
wait for sys_clk_period/2;
CLOCK_50 <= '1';
wait for sys_clk_period/2;
END PROCESS clock;
-----------------------
reset_n <= '0', '1' after 10*sys_clk_period;
-----------------------
always : PROCESS
BEGIN
-- code executes for every event on sensitivity list
KEY <= "110";
wait for 20 ms;
WAIT;
END PROCESS always;
-----------------------
compare: PROCESS(x,y)
VARIABLE VGA_HS_error : BOOLEAN := FALSE;
VARIABLE VGA_VS_error : BOOLEAN := FALSE;
VARIABLE VGA_BLANK_error : BOOLEAN := FALSE;
VARIABLE VGA_CLK_PHASE_error : BOOLEAN := FALSE;
VARIABLE VGA_CLK_COUNTER : INTEGER :=0;
VARIABLE CLOCK_50_COUNTER : INTEGER :=0;
VARIABLE VGA_CLK_FREQUENCY_ERROR : BOOLEAN := FALSE;
BEGIN
--VGA_HS
if TO_INTEGER(unsigned(x)) >= 659 AND TO_INTEGER(unsigned(x)) < 756 then
if VGA_HS /= '0' then
VGA_HS_error:= true;
end if;
ASSERT VGA_HS = '0'
REPORT "FAIL on VGA_HS"
SEVERITY ERROR; -- eller stanna simulatorn: SEVERITY FAILURE;
-- eller REPORT "FAIL on VGA_HS signal on horizontal position " & integer'image(x);
end if;
--VGA_VS
if TO_INTEGER(unsigned(y)) = 493 then
if VGA_VS = '1' then
VGA_VS_error:= true;
end if;
ASSERT VGA_VS = '0'
REPORT "FAIL on VGA_VS"
SEVERITY ERROR; -- eller stanna simulatorn: SEVERITY FAILURE;
end if;
--VGA_BLANK_N
if TO_INTEGER(unsigned(x)) < 640 and TO_INTEGER(unsigned(y)) < 480 then
if VGA_BLANK_N /= '1' then
VGA_BLANK_error:= true;
end if;
ASSERT VGA_BLANK_N = '1'
REPORT "VGA_BLANK_N"
SEVERITY ERROR; -- eller stanna simulatorn: SEVERITY FAILURE;
end if;
--VGA_CLK
if rising_edge(VGA_CLK)AND NOT rising_edge(CLOCK_50) then
VGA_CLK_PHASE_error :=true;
ASSERT rising_edge(CLOCK_50)
REPORT "FAIL on VGA_CLK"
SEVERITY ERROR; -- eller stanna simulatorn: SEVERITY FAILURE;
end if;
END PROCESS compare;
vga_clk_test:process
VARIABLE TIME_VGA_CLK_RISING : TIME;
VARIABLE TIME_VGA_CLK_FALLING : TIME;
VARIABLE TIME_DIFF : TIME;
begin
WAIT UNTIL rising_edge(VGA_CLK);
TIME_VGA_CLK_RISING := now;
WAIT UNTIL falling_edge(VGA_CLK);
TIME_VGA_CLK_FALLING := now;
TIME_DIFF := TIME_VGA_CLK_FALLING - TIME_VGA_CLK_RISING;
REPORT "TEST 11: Half-periodtime : " & time'image(TIME_DIFF);
IF TIME_DIFF = 20000 ps THEN
REPORT "TEST 11: OK VGA_CLK ";
ELSE
REPORT "TEST 11: ERROR VGA_CLK";
END IF;
wait;
end process vga_clk_test;
END vhdl2_uppgift_1_extra_arch;
最佳答案
警告并不总是一个问题,例如在这种情况下。该代码可能模拟和综合等。
在这种情况下,警告是因为 numeric_std.to_integer()
正在获取所谓的元值,这意味着它是无法转换为整数的输入。例如 'X'
或 'U'
。
如果您不想要错误消息,您可以按照 user1155120 在评论中描述的进行操作:
...in modelsim.ini uncomment or set
NumericStdNoWarnings = 1
他还描述了 IEEE1076 标准允许修改 numeric_std 包,例如在 IEEE1076-2008 中提到的:
16.8.5.2 Allowable modifications Vendors of tools conforming to this standard shall not modify the package declarations. [...] The package bodies for the NUMERIC_BIT and NUMERIC_STD packages declare a constant named NO_WARNING that has the value FALSE. A user may set NO_WARNING to TRUE and reanalyze the package body to suppress warning messages generated by calls to the functions in these packages.[...]
另一种选择是为 x
和 y
使用中间变量,并使用函数 Is_X()
来检测和防止元值.但是,我不确定它是否会正确合成。示例:
x_nometa <= (others=>'0') when Is_X(x) else x;
我在您的代码中注意到的另一件事是您使用了 BUFFER
类型的端口。你最好不要使用那些。它们没有得到例如 FPGA 供应商的适当支持。例如。 Xilinx .有一些解决方法:How to stop using "buffer" ports in VHDL
关于vhdl - 为什么 ** 警告 : NUMERIC_STD. TO_INTEGER : metavalue detected, 返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42181105/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
在编码时,我问了自己这个问题: 这样更快吗: if(false) return true; else return false; 比这个? if(false) return true; return
如何在逻辑条件下进行“返回”? 在这样的情况下这会很有用 checkConfig() || return false; var iNeedThis=doSomething() || return fa
这是我的正则表达式 demo 如问题所述: 如果第一个数字是 1 则返回 1 但如果是 145 则返回 145 但如果是 133 则返回 133 样本数据a: K'8134567 K'81345678
在代码高尔夫问答部分查看谜题和答案时,我遇到了 this solution返回 1 的最长和最晦涩的方法 引用答案, int foo(void) { return! 0; } int bar(
我想在下面返回 JSON。 { "name": "jackie" } postman 给我错误。说明 Unexpected 'n' 这里是 Spring Boot 的新手。 1日龄。有没有正确的方法来
只要“is”返回 True,“==”不应该返回 True 吗? In [101]: np.NAN is np.nan is np.NaN Out[101]: True In [102]: np.NAN
我需要获取所有在 6 号或 7 号房间或根本不在任何房间的学生的详细信息。如果他们在其他房间,简单地说,我不希望有那个记录。 我的架构是: students(roll_no, name,class,.
我有一个表单,我将它发送到 php 以通过 ajax 插入到 mysql 数据库中。一切顺利,php 返回 "true" 值,但在 ajax 中它显示 false 消息。 在这里你可以查看php代码:
我在 Kotlin 中遇到了一个非常奇怪的无法解释的值比较问题,以下代码打印 假 data class Foo ( val a: Byte ) fun main() { val NUM
请注意,这并非特定于 Protractor。问题在于 Angular 2 的内置 Testability service Protractor 碰巧使用。 Protractor 调用 Testabil
在调试窗口中,以下表达式均返回 1。 Application.WorksheetFunction.CountA(Cells(4 + (i - 1) * rows_per_record, 28) & "
我在本地使用 jsonplaceholder ( http://jsonplaceholder.typicode.com/)。我正在通过 extjs rest 代理测试我的 GET 和 POST 调用
这是 Postman 为成功调用我的页面而提供的(修改后的)代码段。 var client = new RestClient("http://sub.example.com/wp-json/wp/v2
这个问题在这里已经有了答案: What to do with mysqli problems? Errors like mysqli_fetch_array(): Argument #1 must
我想我对 C 命令行参数有点生疏。我查看了我的一些旧代码,但无论这个版本是什么,都会出现段错误。 运行方式是 ./foo -n num(其中 num 是用户在命令行中输入的数字) 但不知何故它不起作用
我已经编写了一个类来处理命名管道连接,如果我创建了一个实例,关闭它,然后尝试创建另一个实例,调用 CreateFile() 返回 INVALID_HANDLE_VALUE,并且 GetLastErro
即使 is_writable() 返回 true,我也无法写入文件。当然,该文件存在并且显然是可读的。这是代码: $file = "data"; echo file_get_contents($fil
下面代码中的变量 $response 为 NULL,尽管它应该是 SOAP 请求的值。 (潮汐列表)。当我调用 $client->__getLastResponse() 时,我从 SOAP 服务获得了
我一直在网上的不同论坛上搜索答案,但似乎没有与我的情况相符的... 我正在使用 Windows 7,VS2010。 我有一个使用定时器来调用任务栏刷新功能的应用程序。在该任务栏函数中包含对 LoadI
我是一名优秀的程序员,十分优秀!