|

楼主 |
发表于 2003-10-30 15:30:27
|
显示全部楼层
是否可以用cpld实现类似74LS74的逻辑关系?
我的dsp芯片和曼彻斯特编码器芯片之间通过MCBSP0相连,而曼彻斯特编码芯片缺少同步幀头,想利用D触发器产生同步幀头,下面是产生发送的同步幀头,可出现了问题,编译通不过,请帮忙看一下,谢谢!
1、上层文件
library ieee;
use ieee.std_logic_1164.all;
use work.dff_pkg.all;
entity cpld is port (
dspbdx1,dspclkx1: IN std_logic;
t_rdy,r_rdy: IN std_logic;
t_clk,r_clk: IN std_logic;
t_frame_header,r_frame_header: OUT std_logic;
q1,nq1,q2,nq2 : INOUT std_logic
);
--produce T_FRAME_HEADER
architecture archcpld of cpld is
begin
bin_1: DFF
port map(q2 => d,
t_rdy => nreset,
t_clk => clk,
'0' => nset,
nq1 => nq );
bin_2: DFF
port map(dspbdx1 => d,
t_rdy => nreset,
t_clk => clk,
'0' => nset,
q2 => q );
t_frame_header <= '1' when ((nq1 = '1') and (q2 = '1'))
else '0';
end archcpld;
2、包单元
library IEEE;
use IEEE.std_logic_1164.all;
package dff_pkg is
component dff
port(nreset, nset,d, clk : in std_logic;
q,nq : inout std_logic
);
end component;
end dff_pkg;
library IEEE;
use IEEE.std_logic_1164.all;
library CYPRESS;
use CYPRESS.std_arith.all;
use CYPRESS.lpmpkg.all;
entity dff is
port (clk: in std_logic;
d: in std_logic;
nreset: in std_logic;
nset: in std_logic;
q,nq: inout std_logic);
end;
architecture dff_arch of dff is
BEGIN
PROCESS(clk)
BEGIN
IF(clk'EVENT and clk = '1')THEN
IF(nreset = '0')THEN
q <= '0';
IF(nset ='0')THEN
q <='1';
ELSE
q <= d ;
END IF;
END IF;
END IF;
END PROCESS;
end dff_arch;
出现的问题:
cpld.vhd (line 26, col 13): (E10) Syntax error at/before reserved symbol 'architecture'.
cpld.vhd (line 30, col 11): (E8) Syntax error: Can't use 'dff' (a COMPONENT NAME) here.
cpld.vhd (line 46, col 14): (E54) Name 'archcpld' at end of ENTITY does not match 'cpld' at start
|
|