|
|
| | -文章搜索 - 最新文章 - | |
CPLD开发体会 |
| 发布时间:2006年6月22日 点击次数:1040 |
| 来源: 作者: |
CPLD开发体会 …… 通过。后来我就进行模块细分,每个独立的功能为一个模块,先将每个模块写好进行仿真,确认无误后组合到一起,原本认为各个模块写好后 一组全没问题了,但结果不是这样,结合后,中间信号看不到,最终的输入信号不正确。我认为中间信号看不到是程序有问题,因为我认为可 以在“Nodefounder"中指定的信号是可以看得到的,而且,有的信号我曾经看到过。但是无论我怎样改写程序,中间信号都不再重现。苦思多 时,我突然想可以把这些要监视的中间信号引到管脚上,一试,果然可以!我一级一级的进行验证,最后发现分频监视模块和输入模块工作不 正常,这下好说了,就一个一的调试吧。认为已把单独的模块调试好了,但是组合到一起,工作还是不正常,看来事情并不是和想像的一样容 易,可以是在模块链接的时候出现了问题,一个一个找吧。找来找云,到后来我还是觉得输出模块有问题,尽管单独调试时它看起来是正常的 ,后来的结果验证了我的想法,IO模块调试完毕之后,整个程序工作正常了。 ,但这已经不重要了,因为我已经有了解决的方法。后来发现还可以使用"signalprobe"来进行监视,Altera已经提供了这样的工具,到现在我 还没有使用过,有空一定要试一下! VHDL和C是有很大区别的,它们不仅仅是语法上的区别,VHDL是针对硬件而不是CPU的,有些东西从程序上看来是没有问题的,但仿真的结果就 是不正确,什么原因哪?VHDL最终要在硬件上来实现,而硬件门到门之间都是有延迟的,这会造成结果和期望并不一致。如下的这段程序: if(pso /= "00000000")”会形成一个电路,它的输出信号对赋值电路进行控制,而pso则直接连接到tmp的输入端,这样,当pso已经变成 “00000000”被打入tmp,控制信号还没来得及变化,错误就发生了。但我肯定,这样的逻辑在C语言中是没有问题的。 在VHDL语言中,就一定要用硬件的方式来思考问题--这点很重要!!! 有一些问题仍然没有搞明白如:一个信号何时使用falling_edge、rising_edge、''event,编译器才不报错? 原来认为Altera的东西做得很糟糕,慢慢地发现它还是可以的,特别综合,效率非常高,结让人满意。 |
|
|
|
|
[另类其他] 相关文章: 十进制,八进制,十六进制,二进制相互转换大全!简介:
'' 用途:将十进制转化为二进制 '' 输入:Dec(十进制数) '' 输入数据类型:Long '' 输出:DEC_to_BIN(二进制数) '' 输出数据类型:String '' 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1) Public Function DEC_to_BIN(Dec As Long) As String DEC_to_BIN = "" Do While Dec > 0  ...... 新型飞利浦PCI Express 桥接产品赋予笔记本电脑下一代PC-TV性能
Linux中/proc目录下文件详解
SOC专有名词
语音识别技术综述
基础课堂——数据表示、运算和运算器部件
关于avr的熔丝的使用和设置
IBM推System z9新主机
戴尔新移动工作站发布
MPEG4技术及其应用 |
|
|
|