阅读:1636回复:14
如何用cpld实现对一个输出连续赋值?
我用状态机实现对一个输出进行多次赋值,一共用了128个状态,logic systhesizer的时候报错,内容如下:
Internal Error: (ls_)left_paren not found 6-Try Turning on \"Multi_Level Synthesis\" in the Global Project Logic Synthesis dialog box (Assign menu) 请问这是什么问题? 还有,如果我把输出定义成inout型,编译时也报错,描述为: Else Clause follow a clock edge must hold the state of signal \"...\"(其中...为输出) 多谢! |
|
沙发#
发布于:2003-11-04 09:52
第二个错误应该你的程序中出现了这样的语句:
if(clk\'event.....)then ...... else ..... |
|
板凳#
发布于:2003-11-04 09:59
这种情况不能用else吗?
|
|
地板#
发布于:2003-11-04 10:11
这种情况不能用else吗?不能,你想想,时钟沿的非是什么情况? |
|
地下室#
发布于:2003-11-04 12:07
这种情况不能用else吗? 不可以的哟! :D |
|
5楼#
发布于:2003-11-04 12:12
把你的程序发过来我看看。
3650054@163.com |
|
6楼#
发布于:2003-11-04 13:20
已经给您发过去了,请帮忙看一下,谢谢!
|
|
7楼#
发布于:2003-11-04 13:58
看过了!
你换个大一点器件就没问题了,可能你编译时选择的器件门数不够! 另外:你的输入信号有几个没用到。 你的设计可以不用状态机,用个不大的记数器就可以 实现! 这样所占cpld的容量可以很少。 |
|
8楼#
发布于:2003-11-04 14:14
您指的是hh2.vhd换个大点的器件就可以了吗?
|
|
9楼#
发布于:2003-11-04 14:23
说的hh3.vhd
hh2.vhd没看! [编辑 - 11/4/03 by link_bridge] |
|
10楼#
发布于:2003-11-04 14:28
多谢!
hh2.vhd您也帮我看一下吧! 您认为哪一种方案比较好? |
|
11楼#
发布于:2003-11-04 15:19
第2种逻辑错误太厉害了。
要好好修改! |
|
12楼#
发布于:2003-11-05 14:37
我按您的建议将hh3的没用到的输入删掉了,并且换了一个大一点的器件,最后编译有一个警告:
GLOBAL primitive on node \'ena\' feeds logic-non-global signal usage may result,请问这是什么意思? 还有,我仿真得到的图形也乱七八糟,是不是跟这个有关? |
|
13楼#
发布于:2003-11-05 15:07
上班比较忙!
回去给你看看! |
|
14楼#
发布于:2003-11-05 19:54
出现了误码!
修改设计,你的 第2个 process 的敏感变量用CK吧! 我建议用计数器做很容易的具体你自己做。 |
|