【问题标题】:Converting std_logic to integer within testbench?在测试台中将 std_logic 转换为整数?
【发布时间】:2015-07-29 14:17:06
【问题描述】:

我试图在 ISim 的控制台窗口中的特定时间返回一个 CLK 信号的值(如下面的代码所示,7.5ns)。我收到此错误:

ERROR:HDLCompiler:258 - “已保存项目..” 第 91 行:无法转换类型 std_logic 输入无符号

我已经将这种转换(integer'image(to_integer(unsigned((generic_signal)))); 与 std_logic_vectors 一起使用,它工作得很好,但这个不会。 CLK 值是 0 或 1,我只想在给定时间返回该值。你知道更有效的方法吗?您是否碰巧知道一个链接,我可以在该链接中看到更多使用 'image

来返回变量值的方法
   library IEEE;
    use IEEE.STD_LOGIC_1164.all;
    use IEEE.NUMERIC_STD.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;

-----------------------------------------------------------
-- Component Declaration for the Unit Under Test
-----------------------------------------------------------
component SyncPosEdge port(
   SYS_CLK : in std_logic;
   InputSignal : in std_logic;
   SyncOutputSignal : out std_logic);
end component;

-----------------------------------------------------------
-- Inputs
-----------------------------------------------------------
signal SYS_CLK : std_logic := '0';
signal InputSignal : std_logic := '0';

-----------------------------------------------------------
-- Outputs
-----------------------------------------------------------
signal SyncOutputSignal : std_logic;

-----------------------------------------------------------
-- Clock period definitions
-----------------------------------------------------------
constant SYS_CLK_period : time := 5 ns;
constant InputPeriod : time := 15 ns;

begin

-----------------------------------------------------------
-- Instantiate the Unit Under Test
-----------------------------------------------------------
uut:SyncPosEdge port map(
   SYS_CLK => SYS_CLK,
   InputSignal => InputSignal,
   SyncOutputSignal => SyncOutputSignal);

-----------------------------------------------------------
-- Clock process definitions
-----------------------------------------------------------
SYS_CLK_process:process
begin
   SYS_CLK <= '0';
   wait for SYS_CLK_period / 2;
   SYS_CLK <= '1';
   wait for SYS_CLK_period / 2;
end process SYS_CLK_process;

-----------------------------------------------------------
-- Generate Input Signal
-----------------------------------------------------------
InputGen:process
begin
   InputSignal <= '0';
    wait for InputPeriod / 2;
    InputSignal <= '1';
    wait for InputPeriod / 2;
end process;

-----------------------------------------------------------
-- Stimulus process
-----------------------------------------------------------
stim_proc:process
begin   
   wait for 7.5 ns;
    report "SYS_CLK: " & integer'image(to_integer(unsigned((SYS_CLK))));

   wait;
end process stim_proc;

【问题讨论】:

    标签: vhdl xilinx xilinx-ise


    【解决方案1】:

    您可以使用image 属性轻松打印std_logic

    report "SYS_CLK: " & std_logic'image(SYS_CLK);
    

    【讨论】:

    • 是的,解决了它,谢谢!您知道我在哪里可以找到赛灵思或在线的'图像选项 和转换的完整列表吗?我想参考一下,而不是每次都在网上问你知道吗?
    • 任何关于 VHDL 的好书都应该包含这些信息。我的建议是 Peter Ashenden 的“VHDL 设计师指南”
    • 我通常看这个页面csee.umbc.edu/portal/help/VHDL/attribute.html的属性,我面前的墙上有这张图片bitweenie.com/wp-content/uploads/2013/02/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多