打印

关于PROCESS语句中敏感量问题,求证。

[复制链接]
3607|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lidake|  楼主 | 2013-7-23 15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lidake 于 2013-7-23 15:43 编辑

我是菜鸟问题比较基础,请大家指教。
问题一:
PROCESS(din)
BEGIN
     IF(clk'EVENT AND clk='1' ) THEN
         txd_data(txd_addw)<=din;
         txd_addw<=txd_addw+1;
     END IF;
END PROCESS;
这样一段代码,din是一组固定的数值,虽然process后面的敏感量中,我没有写出clk,但是实际情况中clk每次变化时,该process语句是否也会被触发,而执行呢?从而导致txd_addw不断的自加。有没有隐含的敏感量这一说法?
问题二:
ARCHITECTURE fun OF uart IS
   type memory is array(0 to 255)of std_logic_vector(7 downto 0);
   signal txd_data:memory;
   signal txd_addr:integer range 0 to 255;
   signal txd_addw:integer range 0 to 255;
   SIGNAL din_buf :STD_LOGIC_VECTOR ( 7 downto 0);
BEGIN
din_buf<="10101010";
    PROCESS(din_buf)
    BEGIN
              txd_data(txd_addw)<=din_buf;
              txd_addw<=txd_addw+1;
     END PROCESS;
END fun;
此代码中,din_buf是结构体中声明的一组8位宽度的信号量,我在结构体的BEGIN后,赋予固定的值“10101010”,我想问,这样写虽然每次din_buf的数值没有变,但是会不会不断的有赋值动作,而造成 以din_buf 为敏感量的PROCESS语句中的txd_addw不断的自加呢?

相关帖子

沙发
GoldSunMonkey| | 2013-7-23 19:15 | 只看该作者
这个有时候看编译器。
你说的我见过。我也不好太多解释。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lidake + 1
板凳
lidake|  楼主 | 2013-7-23 22:02 | 只看该作者
GoldSunMonkey 发表于 2013-7-23 19:15
这个有时候看编译器。
你说的我见过。我也不好太多解释。

大侠,不会吧,my god,我只是一个菜鸟,要不要上来就让我撞见这么难得问题哦。我用的编译器就是Quartus II 9.0 (32-Bit)。苦恼啊,憋了好几天了!

使用特权

评论回复
地板
GoldSunMonkey| | 2013-7-23 22:06 | 只看该作者
lidake 发表于 2013-7-23 22:02
大侠,不会吧,my god,我只是一个菜鸟,要不要上来就让我撞见这么难得问题哦。我用的编译器就是Quartus I ...

真的,我能骗你么?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lidake + 1
5
lidake|  楼主 | 2013-7-23 22:43 | 只看该作者
GoldSunMonkey 发表于 2013-7-23 22:06
真的,我能骗你么?

哎···那像我这种新手,大侠觉得应该怎么面对这个问题呢?我其实不懂电,大学专业是电脑编程,毕业后工作中,使用单片机和C语言。会画简单的电路板,现在想改FPGA。结果刚开始就遇到这样问题,大侠给推荐几本书吧,再给指点一下迷津吧。3Q。

使用特权

评论回复
6
yghanwuji| | 2013-7-23 23:30 | 只看该作者
lidake 发表于 2013-7-23 22:43
哎···那像我这种新手,大侠觉得应该怎么面对这个问题呢?我其实不懂电,大学专业是电脑编程,毕业后工 ...

敏感信号列表出现在process块中,其典型行为级的含义为:只要敏感信号列表内的信号发生电平变化,则process模块中的语句就执行一次,因此设计人员必须将所有的输入信号和条件判断信号都列在信号列表中。有时不完整的信号列表会造成不同的仿真和综合结果,因此需要保证敏感信号的完备性。在实际的PLD 器件开发中,EDA 工具都会默认将所有的输入信号和条件判断语句作为触发信号,增减敏感信号列表中的信号不会对最终的执行结果产生影响,因此如果期望在设计中通过修改敏感信号来得到不同的逻辑,那就大错特错了。当敏感信号不完备时,会使得仿真结果不一样,这是因为仿真器在工作时不会自动补充敏感信号表。如果缺少信号,则无法触发和该信号相关的仿真进程,也就得不到正确的仿真结果

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lidake + 1
7
yghanwuji| | 2013-7-23 23:31 | 只看该作者
本帖最后由 yghanwuji 于 2013-7-23 23:37 编辑
lidake 发表于 2013-7-23 22:02
大侠,不会吧,my god,我只是一个菜鸟,要不要上来就让我撞见这么难得问题哦。我用的编译器就是Quartus I ...

第一个程序是din作为电平敏感了,所以程序运行了。
第二个程序应该也是会执行的,因为电平触发是一种状态,电平一直是这个状态的话就会触发。
这个也和综合器有关。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lidake + 1
8
lidake|  楼主 | 2013-7-24 10:42 | 只看该作者
yghanwuji 发表于 2013-7-23 23:31
第一个程序是din作为电平敏感了,所以程序运行了。
第二个程序应该也是会执行的,因为电平触发是一种状态 ...

十分感谢对新手的帮助结贴给分。望以后多多指教。

使用特权

评论回复
9
lynn2013| | 2013-7-24 17:06 | 只看该作者
yghanwuji 发表于 2013-7-23 23:31
第一个程序是din作为电平敏感了,所以程序运行了。
第二个程序应该也是会执行的,因为电平触发是一种状态 ...

我原先的理解是只要敏感信号变化就会触发process
实际情况是根据输入信号和敏感信号共同判断的?

使用特权

评论回复
10
GoldSunMonkey| | 2013-7-24 20:57 | 只看该作者
:'(为什么不给我分数

使用特权

评论回复
11
GoldSunMonkey| | 2013-7-24 20:57 | 只看该作者
我第一个回答的,而且是最根本的原因

使用特权

评论回复
12
yghanwuji| | 2013-7-24 23:58 | 只看该作者
lynn2013 发表于 2013-7-24 17:06
我原先的理解是只要敏感信号变化就会触发process
实际情况是根据输入信号和敏感信号共同判断的? ...

是判断敏感信号,组合逻辑里面采用输入信号作为敏感信号

使用特权

评论回复
13
yghanwuji| | 2013-7-25 00:00 | 只看该作者
GoldSunMonkey 发表于 2013-7-24 20:57
为什么不给我分数

给你了啊,猴哥:lol

使用特权

评论回复
14
lidake|  楼主 | 2013-7-26 09:25 | 只看该作者
GoldSunMonkey 发表于 2013-7-24 20:57
为什么不给我分数

哎呀呀,猴哥,俺想给你了,可是人家字打的比你多,哈哈哈哈哈。下次多弄点分给你哦,表桑心哈。:lol

使用特权

评论回复
15
lidake|  楼主 | 2013-7-26 09:34 | 只看该作者
GoldSunMonkey 发表于 2013-7-24 20:57
我第一个回答的,而且是最根本的原因

猴哥,您的最根本的原因,对我这个还没入门的小鸟来说,太抽象了:'(

使用特权

评论回复
16
GoldSunMonkey| | 2013-7-26 23:15 | 只看该作者
yghanwuji 发表于 2013-7-25 00:00
给你了啊,猴哥

没有给我啊

使用特权

评论回复
17
GoldSunMonkey| | 2013-7-26 23:16 | 只看该作者
lidake 发表于 2013-7-26 09:25
哎呀呀,猴哥,俺想给你了,可是人家字打的比你多,哈哈哈哈哈。下次多弄点分给你哦,表桑心哈。 ...

心都伤透了:'(

使用特权

评论回复
18
GoldSunMonkey| | 2013-7-26 23:16 | 只看该作者
lidake 发表于 2013-7-26 09:34
猴哥,您的最根本的原因,对我这个还没入门的小鸟来说,太抽象了 ...

:kiss:

使用特权

评论回复
19
EDAbuffalo| | 2013-8-2 22:43 | 只看该作者
yghanwuji 发表于 2013-7-23 23:30
敏感信号列表出现在process块中,其典型行为级的含义为:只要敏感信号列表内的信号发生电平变化,则proce ...

vhdL中如果敏感信号量不全,也能触发process?(process的敏感信号无,但是输入的信号和判断的信号都在process中使用了),大侠求解。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

90

帖子

0

粉丝