|
自己做了一个ddc块,ram块和一个信号(tc)产生块,各块单独进行仿真,综合,结果都正确,但现在将这几块连起来作为一个整体使用时,前仿真的波形就不对,输出始终为0,不知道是逻辑时序问题,还是激励波形设置问题?还是其他什么问题?
敬请高手详细赐教~~!
下面是源代码:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity block_723 is
Port ( data : in std_logic_vector(13 downto 0);
nd : in std_logic;
clk : in std_logic;
vs_in : in std_logic;
R0 : in std_logic;
rfd:out std_logic;
tc_out:out std_logic;
d_out:out std_logic_vector(31 downto 0);
rdy1:out std_logic );
end block_723;
architecture Behave of block_723 is
component ddc --ddc块
Port ( data_in : in std_logic_vector(13 downto 0);
nd_in : in std_logic;
clk_in : in std_logic;
rfd_out : out std_logic;
rdy_out : out std_logic;
I : out std_logic_vector(13 downto 0);
Q : out std_logic_vector(13 downto 0));
end component;
component ram --ram块
Port ( data_in : in std_logic_vector(31 downto 0);
clk_in : in std_logic;
vs : in std_logic;
tc:in std_logic;
data_out : out std_logic_vector(31 downto 0));
end component;
component tc_generator --tc产生块
Port ( R : in std_logic;
clk_in : in std_logic;
tc : out std_logic);
end component;
signal rdy:std_logic;
signal I1:std_logic_vector(13 downto 0);
signal Q1:std_logic_vector(13 downto 0);
signal data_ram: std_logic_vector(31 downto 0);
signal tc1:std_logic;
begin
data_ram(13 downto 0)<=I1;
data_ram(31 downto 18)<=Q1;
tc_out<=tc1;
rdy1<=rdy;
U1_ddc: ddc
port map(data_in=>data,
nd_in=>nd,
clk_in=>clk,
rfd_out=>rfd,
rdy_out=>rdy,
I=>I1,
Q=>Q1);
U2_ram:ram
port map(data_in=>data_ram,
clk_in=>rdy,
vs=>vs_in,
tc=>tc1,
data_out=>d_out);
U3_tc_generator:
tc_generator
port map(R=>R0,
clk_in=>clk,
tc=>tc1);
end Behave;
请赐教~~~~~!! |
|