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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4290|回复: 15

是否可以用cpld实现类似74LS74的逻辑关系?

[复制链接]
发表于 2003-10-28 16:55:09 | 显示全部楼层 |阅读模式

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

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

x
74ls74是带复位和置位的双上升沿触发的D触发器
发表于 2003-10-28 18:36:41 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

具体时序关系?
感觉好像可以。
发表于 2003-10-28 20:11:35 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

altera的可以
 楼主| 发表于 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
发表于 2003-10-30 16:02:16 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

1。entity cpld 结束的地方加上 end cpld;
2。不要用DFF做component的名字。
 楼主| 发表于 2003-10-30 16:52:20 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

谢谢,不过我还有问题。
1、为什么不用DFF做为COMPONENT的名字?
2、我想让置位端始终保持高电平,但直接给置位端set置‘1’的话,会出现下面的错误,不知道怎么解决这个问题?
nset: IN std_logic;
nset <= '1';
cpld.vhd (line 35, col 9):  (E609) 'nset' not writable.  Mode is IN.
发表于 2003-10-30 16:56:15 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

DFF这个名字可能已经被系统库占用了。
输入口当然不能赋值。
你可以在调用它的时候接高电平。
 楼主| 发表于 2003-10-30 18:37:15 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

怎么描述在调用它的时候接高电平?请继续帮忙解答,不胜感激!!!
发表于 2003-10-30 18:46:22 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

signal logic0 :std_logic ;
begin
logic0<='0';
bin_1: myDFF
port map(
        ...,
       nset =>logic0 ,
        ...,
        );
 楼主| 发表于 2003-10-30 20:09:43 | 显示全部楼层

是否可以用cpld实现类似74LS74的逻辑关系?

又冒出一对问题:component中d,nreset,clk,nset,nq等在上层文件里应该是不定义的,怎还是会出现下面问题?
.....
logic0<='0';
bin_1: cfq
port map( d => q2,
nreset => t_rdy ,
clk => t_clk,
nset =>logic0 ,
       nq => nq1 );
cpld.vhd (line 60, col 18):  (E142) 'd' not visible here.
cpld.vhd (line 61, col 20):  (E142) 'nreset' not visible here.
cpld.vhd (line 62, col 18):  (E142) 'clk' not visible here.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-16 23:04 , Processed in 0.028837 second(s), 8 queries , Gzip On, Redis On.

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