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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1775|回复: 1

望高手指点

[复制链接]
发表于 2004-10-20 11:25:13 | 显示全部楼层 |阅读模式

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

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

x
我在设计中遇到问题,设计目的是将MASCLK分频得到CLK信号,同时置输出CLK为高时保持5个MASCLK时钟。程序如下,仿真时输出CLK不对,不知错在何处,望高手指点!谢谢!
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY GENCLK IS
PORT(
MASCLK      : INSTD_LOGIC;
K                : IN    STD_LOGIC_VECTOR(3 DOWNTO 0);
WDYCTL    : OUT    STD_LOGIC_VECTOR(7 DOWNTO 0);
CLK,PK1,PK2,PK3,PK4         : OUTSTD_LOGIC);
END GENCLK;
ARCHITECTURE a OF GENCLK IS
SIGNAL COUNT,CTL1,CTL2    :STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL QQ          :STD_LOGIC;
BEGIN
PK1<=K(0);
PK2<=K(1);
PK3<=K(2);
PK4<=K(3);
CTL2<=CTL1+5;
WDYCTL<=CTL1;
PROCESS(MASCLK )
BEGIN
IF( MASCLK'EVENT AND MASCLK='1')THEN
IF (COUNT=CTL1)THEN
QQ<='1';
COUNT<=COUNT+1;
    ELSIF(COUNT<CTL2 AND QQ='1')THEN
QQ<='1';
COUNT<=COUNT+1;
ELSIF(COUNT=CTL2 )THEN
COUNT<="00000000";
QQ<='0';
ELSE
COUNT<=COUNT+1;
QQ<='0';
        END IF;
CLK<=QQ;
END IF;
END PROCESS;
PROCESS(K )
BEGIN
CASE K IS
WHEN"0001"=>CTL1<="00011110"; --P1.0 IS H, 6M
WHEN"0010"=>CTL1<="00010111"; --P1.1 IS H, 8M
--WHEN"0100"=>CTL1<="00010011"; --P3.4 IS H, 10M
WHEN OTHERS=>CTL1<="00100101";--WHEN P1.0 AND P1.1 AND P3.4 ARE ALL L, 4.5M
END CASE;
END PROCESS;
END a;


发表于 2004-10-20 13:24:53 | 显示全部楼层

望高手指点

你的Vhdl用得不错,不过出了问题还是逐个信号向前追查比较好,毕竟不是语法方面的问题,还是自己动手好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-1 08:36 , Processed in 0.016816 second(s), 7 queries , Gzip On, Redis On.

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