rtl仿真器-ghdl安装和测试

本文介绍了如何在Linux环境中安装并使用GHDLL进行RTL仿真。首先,讲解了安装GHDLL的过程,然后详细阐述了如何编写和编译rtl模块(如ADD模块)以及测试 bench(TB)。接着,通过分析、elaboration和仿真步骤,演示了如何运行仿真,并利用gtkwave查看波形,以验证设计的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

sudo add-apt-repository ppa:pgavin/ghdl
sudo apt-get update
sudo apt-get install ghdl gtkwave

仿真

rtl

add.v
library ieee;
use ieee.std_logic_1164.all;

entity ADD is
port (A,B:in bit;
SUM,CARRY:out bit);
end entity ADD;
architecture behave of ADD is
begin
SUM <=A xor B;
CARRY <= A and B;
end behave;

TB

library ieee;
use ieee.std_logic_1164.all;

entity tb is
end tb;
architecture beh of tb is
signal a_tb,b_tb,sum_tb,carry_tb: bit;
constant period : TIME := 10 ns;
component ADD
port (A,B:in bit;
SUM,CARRY:out bit);
end component;
begin
U0: ADD port map(
A=>a_tb,
B=>b_tb,
SUM=>sum_tb,
CARRY=>carry_tb
);
tb: process
–constant period : time :=20ns;
begin
a_tb <= ‘0’;
b_tb <= ‘1’;
wait for period;
assert ((sum_tb = ‘1’)and (carry_tb = ‘0’))
report “Test failed” severity error;
a_tb <=‘1’;
b_tb <=‘1’;
wait for period;
assert ((sum_tb = ‘0’)and (carry_tb = ‘1’))
report “Test failed” severity error;
wait;
end process;
end beh;

编译

分析

ghdl -a tb.vhd ADD.vhd

elab

ghdl -e tb

仿真

ghdl -r tb --vcd=tb.vcd

看波形

gtkwave tb.vcd
波形
命令解析:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值