搜索
bottom↓
回复: 12

一个简单的CPLD程序,感觉仿真的波形有问题

[复制链接]

出0入399汤圆

发表于 2013-2-19 16:57:49 | 显示全部楼层 |阅读模式

程序是个10分频功能,下面是仿真的波形,两条黑线是仿真出来的波形,蓝色是我觉得对的波形,上面的值是count的计数值!仿真的波形明显不对,是在上升沿触发的,但是下面的波形明显不是上升沿切换状态的。
还有在count从1到5的时候,从程序看出来每到一个上升沿会有一个高脉冲啊??不知道对不对啊?

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-2-19 17:15:02 | 显示全部楼层
按你的思路,count应该声明为变量,而不是信号;声明为信号不是立即生效的;

出0入399汤圆

 楼主| 发表于 2013-2-19 18:05:32 | 显示全部楼层
jm2011 发表于 2013-2-19 17:15
按你的思路,count应该声明为变量,而不是信号;声明为信号不是立即生效的; ...

哦,原来是这么回事,初学还不太懂,那不会立即生效意思就是会有延时,那个延时时间是怎么指定的?我看仿真波形延长时间好像都是相等的。

出0入399汤圆

 楼主| 发表于 2013-2-20 23:12:22 | 显示全部楼层
我读程序感觉输出低电平时,每来一个上升沿,会有一个正脉冲啊?如图:

看书上说VHDL是并行执行的,不和mcu一样是按顺序执行,是不是这个原因?

本帖子中包含更多资源

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

x

出0入399汤圆

 楼主| 发表于 2013-2-21 14:39:48 | 显示全部楼层

出0入0汤圆

发表于 2013-2-21 22:29:47 | 显示全部楼层
信号和变量在VHDL中非常重要,建议专门看书系统看看;有点像VERILOG中的<= 和 =的区别;

出0入399汤圆

 楼主| 发表于 2013-2-22 00:35:56 | 显示全部楼层
jm2011 发表于 2013-2-21 22:29
信号和变量在VHDL中非常重要,建议专门看书系统看看;有点像VERILOG中的

了解了,那3,4楼剩余的问题您能解答一下么?

出0入0汤圆

发表于 2013-2-22 00:48:52 来自手机 | 显示全部楼层
q是寄存器输出的吧,当然不会有毛刺了。边沿没有对齐是因为寄存器的tco

出0入399汤圆

 楼主| 发表于 2013-2-22 08:44:08 | 显示全部楼层
billwsy 发表于 2013-2-22 00:48
q是寄存器输出的吧,当然不会有毛刺了。边沿没有对齐是因为寄存器的tco

q没定义成寄存器,楼主位的程序就是完整的了。tco全称是什么?

出0入0汤圆

发表于 2013-2-24 11:33:36 | 显示全部楼层
R88 发表于 2013-2-22 08:44
q没定义成寄存器,楼主位的程序就是完整的了。tco全称是什么?

你在时序进程里面对q赋值,q就会被综合成一个寄存器了,你可以看看综合后的原理图,就能明白了。记得一般来说VHDL里面的signal是寄存器,variable是组合逻辑。Tco为寄存器传输时间,我猜可能是Time: Clock to Output吧。

出0入0汤圆

发表于 2013-2-24 11:35:02 | 显示全部楼层
R88 发表于 2013-2-22 08:44
q没定义成寄存器,楼主位的程序就是完整的了。tco全称是什么?

还有你是用什么软件仿真的?已经是时序仿真了?你可以先试试功能仿真。

出0入399汤圆

 楼主| 发表于 2013-2-24 12:16:09 | 显示全部楼层
billwsy 发表于 2013-2-24 11:35
还有你是用什么软件仿真的?已经是时序仿真了?你可以先试试功能仿真。 ...


用quartersII仿真的,q我没有在赋值啊,只是给clk赋值了一个时钟信号

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-2-24 16:41:42 | 显示全部楼层
R88 发表于 2013-2-24 12:16
用quartersII仿真的,q我没有在赋值啊,只是给clk赋值了一个时钟信号

我指的是你设计中的q。你用了q<=而不是q=,以及描述了rising_edge(clk),这两项告诉综合器,q是一个触发器,在clk上升沿才会改变,所以不会有毛刺出现。从你上面的截图看,你仿真的模式是Timing,也就是考虑到FPGA内部的资源的非理想型。例如一个信号经过一条线都会产生延时。本例中跳变沿和时钟没有对齐就是因为触发器输出的延时。你选择的时钟频率又比较高,让这个问题看上去很明显。
建议你先去学习一下基本的数字电路知识再来看硬件描述语言。硬件描述语言并不是“执行”的,它只是描述了一个电路的行为,综合器产生了一个电路,和你描述的行为一致。当你对电路没有一点概念的时候,你自然不知道你描述的是什么了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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