vhdl - 位运算符的测试台
问题描述
有人可以帮我为以下程序创建一个 TestBench 程序吗?
library ieee;
use ieee.std_logic_1164.all;
entity bitwise is
port( a,b : in std_logic_vector(4 downto 0);
result1, result2, result3, result4, result5, result6 : out std_logic_vector(4 downto 0));
end bitwise;
architecture arch of bitwise is
begin
result1 <= a and b;
result2 <= a or b;
result3 <= a xor b;
result4 <= not a;
result5 <= to_stdlogicvector(to_bitvector(a) sll 1);
result6 <= to_stdlogicvector(to_bitvector(a) srl 1);
end arch;
我的测试台程序如下:我坚持在刺激过程中,我们必须测试每一种可能性。它可以是循环版本,也可以只是测试每个运算符的可能数字。
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity test_bitwise is
end test_bitwise;
architecture behavior of test_bitwise is
component bitwise;
port( a,b : in std_logic_vector(4 downto 0);
result1, result2, result3, result4 : out std_logic_vector(4 downto 0));
end component;
--INPUTS
signal tb_a : std_logic_vector(4 downto 0) := (others => '0');
`signal tb_b : std_logic_vector(4 downto 0) := (others => '0');
--OUTPUTS
signal tb_result1 : std_logic_vector(7 downto 0);
signal tb_result2 : std_logic_vector(7 downto 0);
signal tb_result3 : std_logic_vector(7 downto 0);
signal tb_result4 : std_logic_vector(7 downto 0);
begin
-- INSTANTIATE THE UNIT UNDER TEST (UUT)
U1_Test : entity work.test_bitwise(behavioral)
port map (a => tb_a,
b => tb_b,
result1 <= tb_result1,
result2 <= tb_result2,
result3 <= tb_result3,
result4 <= tb_result4);
--STIMULUS PROCESS
stim_proc : process
begin
-- CODE HERE
end process;
end behavior;
解决方案
正如其他人在评论中所说,您应该自己提供一些输入。你尝试过什么,为什么没有成功?如果您很难找出尝试什么以及如何开始,您可以从执行以下操作开始。如果您没有成功,您可以编辑您的问题或发布一个新问题,以便其他成员可以帮助您。
使用 for 循环遍历每一种可能性。手动编写所有可能的值进行测试会很累。
推荐阅读
- sql - 临时表与通过 MS SQL 中的 WITH 关键字启动的表有何不同?
- ios - 带有 Objective-C 文件的 Swift Cocoapods 给出了未定义的符号
- c# - 是否可以编写异步 IQueryable
询问? - python - Keras 后端功能似乎无法正常工作
- reactjs - MUI 组件上的 fullWidth 和 className
- python - 如何在python中处理hackerrank上的长字符串
- mysql - 如何验证数据源名称是否有效?
- python - 是否有使用 for 循环和 if else 的 Pythonic 列表理解?
- javascript - $lookup 中日期的时差
- python-3.x - 如何在 Python 3 中将 PyCairo 表面转换为 OpenCV numpy 并返回