集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2996|回复: 7

关于进程执行的小问题!急求高手解答。

[复制链接]
BEAR2009 发表于 2010-8-24 15:49:21 | 显示全部楼层 |阅读模式
ARCHITECTURE behav OF cpout IS
        SIGNAL L:                INTEGER := 0;
        SIGNAL S:                INTEGER := 0;
        SIGNAL F:                INTEGER := 0;
        SIGNAL FS:                INTEGER := 0;
        SIGNAL tm_l:        STD_LOGIC := '0';
BEGIN
PROCESS(clk,tm_l)
                VARIABLE Flag:                STD_LOGIC := '0';
                VARIABLE FlagF:                STD_LOGIC := '0';
BEGIN
                      IF(L = SYNL) THEN                             
                                Flag := '1';
                        END IF;
                        IF(Flag = '1') THEN
                                IF(FS = 399) THEN                              
                                        FS <= 0;
                                ELSE
                                        FS <= FS + 1;
END IF;
END PROCESS;
END;
就比如上面的程序,我只是谁便抄的一段,所以现在不管程序的对错,也不管其中的一些信号代表什么。
本人就是想问,第一个时钟时程序开始从结构体开始执行,然后到进程再到程序结束,那此时FS信号的值就不是初始值0了,同时如果此时的Flag也不是0了,那么下个时钟的时候,又从进程的开始执行,那么Flag的值会被付成0么?程序一直在执行的话FS信号的值会不会也被赋值成0么?
--其实这个问题就是问:结构体开始那段信号赋值程序,在一次程序运行中执行几次,以及,进程开始的那段变量赋值程序,在进程循环执行中运行多少次?(都是在程序只运行一次的情况下)
 楼主| BEAR2009 发表于 2010-8-24 16:53:55 | 显示全部楼层
没有人帮忙解答么????
 楼主| BEAR2009 发表于 2010-8-24 21:51:44 | 显示全部楼层
没人说句话么?高手帮帮忙呢,难道我写的大家看不懂么?
无名 发表于 2010-8-24 22:19:13 | 显示全部楼层
学Verilog的飘过,貌似在这里问问题很难找到答案。。。
 楼主| BEAR2009 发表于 2010-8-25 13:49:28 | 显示全部楼层
寻求高手解决问题!!!
awy0903 发表于 2010-8-25 14:31:28 | 显示全部楼层
大哥,你可以仿真看看。VHDL语言和C及51核汇编运行进程是不一样的,他是并行的,就是一起同时运行,就是0时刻赋值语句也运行了,但是PROCESS里的语句是顺序进行的,所以当PROCESS用到FIAG时赋值语句已经运行完成了,像VERILOG里的BEGIN..END语句一样。只不过PROCESS里程序语句多,要的时间长,PROCESS里的循环和开始赋值什么关系???时序问题。希望对你有帮助,VHDL我还是大学写过,现在外面都不用了
sprone 发表于 2010-8-26 23:45:50 | 显示全部楼层
就LZ的问题来看,估计是以前从ACM转过来的吧~  呵呵~
VHDL语言不像C,更不像C++之流~  它描述的不是简单的一个思想~  而是具体的一个电路~
因此LZ在学好VHDL的同时,应该有数字逻辑的意识在里面。。。
  不需要像现在这样分析来分析去~  因为它本身只是一个电路而已。。。
honglinlang 发表于 2010-8-28 12:27:14 | 显示全部楼层
结构体开始那段信号赋值程序,在一次程序运行中执行一次,那是电路初始化时电路的初始值
进程开始的那段变量赋值程序,也就是电路中的电线,是没有赋值的概念的,每次的电路是0,电线值就是0,是1就是1,只要有时钟存在就会一直执行的
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 13:31 , Processed in 0.060185 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表