VHDL - iSIM 输出未初始化,不改变状态

2024-02-13

您好,我是一位 Xilinx 新用户,在如何在测试台中编写激励/模拟方面遇到了麻烦。我的输出(Kd)没有给我任何合理的值,并在移动并始终保持在“1”之前的前几个时钟周期给出“u”。

不确定我是否写了正确的刺激,但希望有人能帮助我!

我的VHDL代码

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity codeFig2b is
    Port ( R0 : in  STD_LOGIC;
           R1 : in  STD_LOGIC;
           R2 : in  STD_LOGIC;
           R3 : in  STD_LOGIC;
           Kd : out  STD_LOGIC;
           clock : in  STD_LOGIC);
end codeFig2b;

architecture Behavioral of codeFig2b is
    signal Qa, Qb: STD_LOGIC;
begin
    process(clock, R0, R1, R2, R3)
        begin
        if clock = '1' and clock'event then
        Qa <= (R0 or R1 or R2 or R3) or (Qa and Qb);
        Qb <= Qa;
        end if;
    end process;
Kd <= Qa and Qb;    

end Behavioral;

我的测试平台##

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--USE ieee.numeric_std.ALL;

ENTITY codeFig2b_test IS
END codeFig2b_test;

ARCHITECTURE behavior OF codeFig2b_test IS 

    -- Component Declaration for the Unit Under Test (UUT)

    COMPONENT codeFig2b
    PORT(
         R0 : IN  std_logic;
         R1 : IN  std_logic;
         R2 : IN  std_logic;
         R3 : IN  std_logic;
         Kd : OUT  std_logic;
         clock : IN  std_logic
        );
    END COMPONENT;


   --Inputs
   signal R0 : std_logic := '0';
   signal R1 : std_logic := '0';
   signal R2 : std_logic := '0';
   signal R3 : std_logic := '0';
   signal clock : std_logic := '0';

    --Outputs
   signal Kd : std_logic;

   -- Clock period definitions
   constant clock_period : time := 100 ns;

BEGIN
    -- Instantiate the Unit Under Test (UUT)
   uut: codeFig2b PORT MAP (
          R0 => R0,
          R1 => R1,
          R2 => R2,
          R3 => R3,
          Kd => Kd,
          clock => clock
        );

   -- Clock process definitions
   clock_process :process
   begin
        clock <= '0';
        wait for clock_period/2;
        clock <= '1';
        wait for clock_period/2;
   end process;


   -- Stimulus process
   stim_proc: process
   begin        
      -- hold reset state for 100 ns.
       wait for 100 ns;
            R0 <= '0';
            R1 <= '0';
            R2 <= '0';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '0';
            R2 <= '0';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '0';
            R2 <= '1';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '0';
            R2 <= '1';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '1';
            R2 <= '0';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '1';
            R2 <= '0';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '1';
            R2 <= '1';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '0';
            R1 <= '1';
            R2 <= '1';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '0';
            R2 <= '0';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '0';
            R2 <= '0';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '0';
            R2 <= '1';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '0';
            R2 <= '1';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '1';
            R2 <= '0';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '1';
            R2 <= '0';
            R3 <= '1';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '1';
            R2 <= '1';
            R3 <= '0';

        wait for 100 ns;
            R0 <= '1';
            R1 <= '1';
            R2 <= '1';
            R3 <= '1';

      wait for clock_period*10;

      -- insert stimulus here 

      wait;
   end process;

END;

无需模拟即可回答此问题。 Kd 的输出将变为“1”并保持在那里。

    process(clock, R0, R1, R2, R3)
        begin
        if clock = '1' and clock'event then
        Qa <= (R0 or R1 or R2 or R3) or (Qa and Qb);
        Qb <= Qa;
        end if;
    end process;
Kd <= Qa and Qb;  

对于 R0、R1、R2 或 R2 或(Qa 和 Qb)中的任何一个,Qa 变高;

因此,一旦 Qa 和 Qb 变高,Qa 就会保持高电平。

Qb 第一次出现 Qa 变高后一个时钟周期变高。

发生这种情况的方式是在 R0、R1、R2 或 R3 中的任何一个上连续输入“1”。

您的时钟周期为 100 ns,您的刺激间隔也是。

在第一个时钟之后,您没有任何刺激,其中所有 R0、R1、R2 和 R3 同时都处于低电平以进行演示。

不幸的是,您的 Xilinx 帖子上的波形图像(iSIM 输出未初始化,不改变状态。 http://forums.xilinx.com/t5/Simulation-and-Verification/iSIM-output-Unintialised-doesn-t-change-states/m-p/560396) 没有向 QA 和 Qb 显示它们都变高并保持在那里:

codefig2b image (clickable)

当你添加它们时,这一点就会出现:

codefig2b_test.png clickable)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VHDL - iSIM 输出未初始化,不改变状态 的相关文章

  • MPAndroidChart 中的日期时间轴

    我在我的应用程序中使用 MPAndroidChart 我想使用 y 轴上的值和 x 轴上的日期来绘制图表 我在 MPAndroidChart API 中没有找到任何日期时间轴 有什么方法可以使用日期绘制 xAxis 吗 我有根据日期绘制的值

随机推荐

  • 我想检查Python的子进程是否成功或者是否发生错误

    我正在尝试使用 python 子进程创建代码 code print hey OK code print hey SyntaxError with open filename w as f f write code proc s Popen
  • 使用R自动下载数据

    我想下载 pdf 或 excel 格式的所有数据 每个州 X 作物年 X 标准报告组合这个网站 https aps dac gov in LUS Public Reports aspx 我按照本教程做了我想做的事 从 URL 下载数据 ht
  • 如何调整ggplotly中的悬停?

    我有 2 个分类列和 1 个数字列的数据 我建立了 marikemo 图表ggplot 为了使其具有交互性 我使用了ggplotly 但是 当我移动光标时 悬停会显示相同的信息两次 create a dataset specie lt c
  • Android 相机实时滤镜

    相机实时滤镜的最佳方式是什么 我最近使用链接中的 GPUImage 库 https github com Cyber Agent android gpuimagelibrary https github com CyberAgent and
  • Symfony2 和 Twig - 检查资产是否存在

    我有一个使用 twig 模板的 symfony2 项目 我正在显示一些图像 并且希望仅在特定资产存在时才显示图像 我有这个 if asset bundles sciforumversion2 images logos conf img im
  • 在Python中定义多维字典的最佳方法? [复制]

    这个问题在这里已经有答案了 我目前正在使用下面的方法在 python 中定义多维字典 我的问题是 这是定义多维字典的首选方式吗 from collections import defaultdict def site struct retu
  • 如何使用 confluence-kafka-python 获取 Kafka 主题最后一条消息的偏移量?

    我需要使用检索主题的最后 N 条消息confluent kafka python 我一直在读https docs confluence io platform current clients confluence kafka python
  • 从相机应用程序返回时重新创建活动

    此问题仅出现在两款较旧的三星 Galaxy 机型上 但仍然非常容易重现 我有一个简单的应用程序 可以显示通过设备的相机应用程序拍摄的照片 它有一个按钮来启动该应用程序 并在 AsyncTask 中处理结果以将其下采样到 ImageView
  • 如何使用seaborn distplot / histplot / displot绘制百分比

    有没有办法在 distplot 上绘制百分比而不是计数 ax sns FacetGrid telcom hue Churn palette teal crimson size 5 aspect 1 ax ax map sns distplo
  • 如何计算采购量与销售量的差额?

    如何使用 Ms Access 数据库计算一次查询中的采购量和销售量之间的差异 例如 我的数据如下所示 ProductId Type Quantity 1 Purchase 24 1 Sale 1 如何在一个查询中获得 24 1 23 的差值
  • 设置超时 Internet Explorer

    我在 MSIE 中有以下 javascript setTimeout myFunction 1000 param 这似乎适用于除 Internet Explorer 之外的所有浏览器 参数只是没有转发到函数 查看调试器 它是未定义的 par
  • 奇怪的通用继承模式

    在一些研究过程中 我遇到了一种使用我以前从未见过的泛型的继承模式 http thwadi blogspot ca 2013 07 using protobuff net with inheritance html http thwadi b
  • 将 cakephp POST 参数插入 URL

    我有下面的表格 其中包含两个复选框来对某些产品进行排序
  • 什么是焊接,JSR-299?

    我发现了很多显示 Weld 代码示例的教程 但没有介绍性概述 您能否推荐一篇介绍性文章 或回答以下问题 Weld 能做什么 给你带来什么 它与 Java EE 6 有什么关系 如何在 Java EE 6 项目中使用它 如果在 Java EE
  • 使用c++ opengl的贝塞尔曲线

    我使用此代码通过单击一个点来绘制贝塞尔曲线 如果我使用编写的静态公式 它会起作用drawBezier函数 它会形成正确的曲线 但是如果我使用写成的广义公式drawBezierGeneralized 最后一点有问题 我究竟做错了什么 incl
  • 将 Hadoop 中的文件获取到 Web 应用程序中

    我是 Hadoop 新手 现在我正在尝试在 eclipse 中做一个应用程序 我想在其中使用 HDFS 中存在的数据 如果我们想用Java连接数据库 我们有JDBC连接 那么 我需要做什么才能直接连接HDFS呢 在 Hadoop 中 首先
  • SQL Server 2016_无法启动镜像

    将SQL Server 2014升级到SQL Server 2016 都是企业版 后 我无法启动镜像 这在 SQL Server 2014 上正常工作 我恢复后 WITH NORECOVERY 镜像数据库 包含我通常运行的主数据库的完整备份
  • 如何强制 Iframe 在标准父框架下运行怪异

    我们有一个父页面必须在 IE9 标准模式下运行 执行 HTML5 命令 下面我们有一个必须在兼容模式 IE7 8 下运行的 iframe 据我了解 在 IE9 中 iframe 继承了父级的文档类型 那是对的吗 这个问题有什么解决办法吗 不
  • 将附加参数传递给 python 回调对象 (win32com.client.dispatchWithEvents)

    我正在使用 win32com 包与 Windows 应用程序交互 应用程序并不重要 简而言之 我想要实现的是订阅更新的表 我已经成功实现了一个回调 该回调接收表更新时返回的数据 但我现在需要的是对收到的数据采取行动 如果我可以使用附加参数实
  • VHDL - iSIM 输出未初始化,不改变状态

    您好 我是一位 Xilinx 新用户 在如何在测试台中编写激励 模拟方面遇到了麻烦 我的输出 Kd 没有给我任何合理的值 并在移动并始终保持在 1 之前的前几个时钟周期给出 u 不确定我是否写了正确的刺激 但希望有人能帮助我 我的VHDL代