使用 FPGA 进行嵌入式设计:实现

测试逻辑行为

在尝试在 FPGA 中运行之前,使用仿真测试逻辑的行为非常重要。这是因为在仿真环境中检测和修复问题比在 FPGA 内部运行的逻辑要容易得多。Vivado 仿真工具在表示电路行为方面做得非常好:

在Sources子窗口中,右键单击Simulation Sources并选择 Add Sources…:
在这里插入图片描述在添加源对话框中,确保选择添加或创建模拟源,然后单击下一步。
在“添加或创建仿真源”对话框中,单击“创建文件”。
输入文件名vhdl并单击确定。
单击“完成”关闭“添加或创建仿真源”对话框,然后在“定义模块”对话框中单击“确定”,并在询问您是否确定要使用这些源时单击“是”
双击Simulation Sources下的Adder4 TestBench (Behavioral) (Adder4TestBench.vhdl)。删除vhdl编辑器窗口中自动填充的内容,并在Adder4TestBench.vhdl编辑器中输入以下代码:
图书馆 IEEE;
使用 IEEE.STD_LOGIC_1164.ALL;
使用 IEEE.NUMERIC_STD.ALL;
实体 ADDER4_TESTBENCH 是
终端实体 ADDER4_TESTBENCH;
ADDER4_TESTBENCH 的架构行为是
组件 ADDER4 是
港口 (
A4:在 std_logic_vector(3 downto 0) 中;
B4 : 在 std_logic_vector(3 downto 0) 中;
SUM4 : out std_logic_vector(3 downto 0);
C_OUT4 : 输出 std_logic
);
终端组件;
信号 a : std_logic_vector(3 downto 0);
信号 b : std_logic_vector(3 downto 0);
信号 s : std_logic_vector(3 downto 0);
信号 c_out : std_logic;
信号 expected_sum5: unsigned(4 downto 0);
信号 expected_sum4: unsigned(3 downto 0);
信号预期_c:std_logic;
信号错误:std_logic;
开始
TESTED_DEVICE:ADDER4
港口地图(
A4 => 一个,
B4 => b,
SUM4 => s,
C_OUT4 => c_out
);
测试:过程
开始
– 测试两个 4 位加数的所有组合(总共 256 个测试)
对于 0 到 15 循环中的 a_val
对于 0 到 15 循环中的 b_val
– 设置 ADDER4 组件的输入
a <= std_logic_vector(to_unsigned(a_val, a’length));
b <= std_logic_vector(to_unsigned(b_val, b’length));
等待 1 ns;
– 计算两个 4 位值的 5 位总和
expected_sum5 <= unsigned(‘0’ & a) + unsigned(‘0’ & b);
等待 1 ns;
– 将总和分成 4 位输出和进位位
expected_sum4 <= expected_sum5(3 downto 0);
expected_c <= expected_sum5(4);
等待 1 ns;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值