首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请问:VHDL的after xxns能仿真吗??

[求助]请问:VHDL的after xxns能仿真吗??

一个简单的程序


想仿真,,,但怎也搞不好


 


library ieee;


use ieee.std_logic_1164.all;


entity fd is


port(cc:in std_logic;


     foutut std_logic);


end;


architecture one of fd is


begin


process(cc)


begin


if cc='1' then fout<='1';


else fout<=cc after 100 ns;


end if;


end process;


end;


 


 

╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
能仿真,但是不能综合
美梦成真-->噩梦降临!
不能综合是什么意思?


能仿真吗?
怎么仿真波形没延时?
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
不能用硬件实现的语句,最好别用
就是说,你用软件可以看到结果,但是在硬件里实现不了,软件知道100 ns是多少,硬件可不知道
美梦成真-->噩梦降临!
哦~~
硬件不知道的话,,
延时应该怎样实现??
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
以你的时钟周期作为基准,计数或者用寄存器做延时
美梦成真-->噩梦降临!
其实时钟是怎样使用的?

点样可以精确的计数呢?

是来一个脉冲然后+1计数么?

寄存器怎样实现延时呢?

╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
前两个问题没看懂
计数的精度就是时钟周期;
一个时钟周期加或者减一,到你指定的值后做相应的操作;
寄存器加一级就延时一个时钟周期;
美梦成真-->噩梦降临!
我的意思是,我不懂怎样使用时钟,,

需要外加晶振么?

或者是cpld本身已经有时钟指令,可以直接计数?

我现在要实现的是---要将一个信号延迟一段时间

我想利用时钟(或者说一段足够长的脉冲)计数,,计数的这段时间为延迟时间,到指定值延迟就结束。。。

我现在最大疑惑就是这个时钟(或者这段长脉冲)怎样产生?需要外加晶振么?

如果是,,,那也麻烦了点,,cpld自己能实现么?




╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
需要外加晶振,cpld是不会自己产生这个基准的,但是作为你的程序来说,你需要一个确定的基准,所以必须加。
另:如果你计数很大的话,由于结构原因,在cpld中非常的耗资源,因为相对于fpga来说,cpld更适合于做组合逻辑电路,并不太适合做大的时序电路。
美梦成真-->噩梦降临!
我不需太长的延时,,能延时1~2秒就可以了,,

能否用语言编写一个时钟的程序?免掉外加的晶振呢?

╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
时钟时编写不出来的;
如果你不想用时钟,那么你有规则的信号没有?也就是说你有能体现时间的信号没有?你必须有能解释"秒"这个概念的信号
美梦成真-->噩梦降临!
我现在最大的疑问就是:
能用软件来产生一段脉冲么?
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
之前看到一篇文章
FPGA中的延时设计

当需要对电路中的某一信号作一段延时时,可在信号后串接一些"非门"或其它门电路。但在FPGA中,开发软件会在综合设计时将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MAXPLUSII开发FPGA时,可以通过插入LCELL原语或调用延时线模块来产生一定的延时。但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,这样会影响FPGA的性能。因此,可以用高频时钟来驱动一移位寄存器,需要延时的信号作为数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后的信号重新采样,就可以消除误差。当然,当所需延时较长时,这样做比较浪费资源。此外,用VHDL语言进行FPGA设计时,不能用after语句来实现延时,因为目前的综合工具还不能做到如此精确的延时,即程序中的after语句不能被综合。

延时真的这么复杂吗?不需要太精确啊,,精确到ms或者0.1s应该不难实现吧
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
返回列表