在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3318|回复: 2

[求助] 用VHDL写了一个半加器,Testbench不能出波形

[复制链接]
发表于 2016-5-11 20:50:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
用VHDL写了一个半加器,利用quartus ii产生的Testbench模板,然后在模板上添加代码,程序在编译能通过,然后在Modelsim里仿真运行,
就是不能出波形,个人觉得是程序的事,但是就是找不出错误所在,请大家帮忙看看。。
以下是半加器源程序:
library ieee;
use ieee.std_logic_1164.all;

entity half_adder is
           port(A : in std_logic;
                   B : in std_logic;
                     S : out std_logic;
                     CO: out std_logic
              );
end entity half_adder;

architecture bhv of half_adder is
  begin
  S <= A xor B;--异或
  CO<= A and B;--与
end architecture bhv;



以下Testbench 源程序:
LIBRARY ieee;                                               
USE ieee.std_logic_1164.all;                                

ENTITY half_adder_vhd_tst IS
END half_adder_vhd_tst;
ARCHITECTURE half_adder_arch OF half_adder_vhd_tst IS
                                             
SIGNAL A : STD_LOGIC;
SIGNAL B : STD_LOGIC;
SIGNAL CO : STD_LOGIC;
SIGNAL S : STD_LOGIC;
COMPONENT half_adder
    PORT (
    A  : IN STD_LOGIC;
    B  : IN STD_LOGIC;
    CO : OUT STD_LOGIC;
    S  : OUT STD_LOGIC
    );
END COMPONENT;
BEGIN
    i1 : half_adder
    PORT MAP (

    A => A,
    B => B,
    CO => CO,
    S => S
    );
init : PROCESS                                               
     BEGIN                                                        
      A <= '0' , '1' after 200 ns , '0' after 200 ns ;         
WAIT;                                                      
END PROCESS init;

always : PROCESS                                             
   BEGIN                                                         
     B <= '0' , '1' after 100 ns , '0' after 200 ns ;      
WAIT;                                                        
END PROCESS always;                                          
END half_adder_arch;能出波形,个人觉得是程序的事,但是就是找不出错误所在,请大家帮忙看看。。

发表于 2016-7-27 10:45:56 | 显示全部楼层
testbench的process里,把A <= '0' , '1' after 200 ns , '0' after 200 ns 语句换成wait for 试试
 楼主| 发表于 2016-7-28 19:27:52 | 显示全部楼层
回复 2# 刘苗
嗯嗯,在process里面,用wait for 是好使的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 00:06 , Processed in 0.024943 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表