| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2244 人关注过本帖, 1 人收藏
标题:一个关于VHDL的问题
只看楼主 加入收藏
瓦莱塔
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-9-12
收藏(1)
 问题点数:0 回复次数:0 
一个关于VHDL的问题
这个版很清净啊,不知道我在这里发帖合适不?哪位好心人帮我解答一下

设计一个主干道和支干道十字路口的交通灯控制电路,要求如下:
1.一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮的时间不少于60s
2.当主干道绿灯亮超过60s,且支干道有车时,主干道红灯亮、支干道绿灯亮,但支干道绿灯亮的时间不得超过30s


我的思路是这样的:初始状态为主干道绿灯亮,支干道红灯亮,n=0;每次脉冲来临变量n增加1;当n>=60时再判断支干道是否有车即flag=1;若满足条件就改变灯的状态并把n清零,重新开始计时;当支干道绿灯亮超过30个脉冲时再改变灯的状态并把n清零
*********************************
代码中flag信号表示支干道是否有车,有车时为‘1’,没车为‘0’
变量n表示经过了几个时钟脉冲
信号main,branch分别表示主干道和支干道的灯状态,为‘1’时绿灯亮且红灯灭,为‘0’时红灯亮且绿灯灭
*********************************

*****************************
遇到的问题如下
1.按照题意我觉得应该定义一个默认状态main<=’1’;branch<=’0’的,但我放在结构体里会和并行运行的进程里重复赋值了,放在进程的开始也不行,请问应该怎样定义才能既无语法上的错误又符合题目要求?
2.还有对n值进行判断后对n赋值这样是可以的吗?虽然编译没提示有错,但好象我看过VHDL不能这样的?还是信号不能而变量可以?
*****************************

LIBRARY ieee;
USE ieee.std_logic_1164.all;

ENTITY control IS

    PORT
    (
        flag        : IN    STD_LOGIC;--whether some cars in branch
        clk    : IN    STD_LOGIC;
        main,branch: OUT     STD_LOGIC--when '1'-green working;'0'-red working
    );
    
END control;

ARCHITECTURE behavior OF control IS

        
BEGIN
    main<='1';

    branch<='0';
            

PROCESS (clk, flag)
    
           VARIABLE n,temp:INTEGER;
                  
    BEGIN


        IF (clk'EVENT AND clk = '1') THEN
            n:=n+1;
        
        IF (n>60 AND flag='1')THEN
            
                main <= '0';
                branch<='1';
                temp:=1;
                n:=0;
        
        END IF;

            IF (n>30 AND temp=1)THEN
               
                main<='1';
                branch<='0';
                temp:=0;
                n:=0;
            
            END IF;

    END IF;
        
END PROCESS;
            
END behavior;
搜索更多相关主题的帖子: VHDL 
2008-11-28 10:28
快速回复:一个关于VHDL的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016845 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved