[求助]请问:VHDL的after xxns能仿真吗??
- UID
- 132277
- 性别
- 男
|
[求助]请问: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;
|
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
不能综合是什么意思?
能仿真吗?
怎么仿真波形没延时? |
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 136198
- 性别
- 男
|
|
|
|
|
|
- UID
- 132434
- 性别
- 男
|
就是说,你用软件可以看到结果,但是在硬件里实现不了,软件知道100 ns是多少,硬件可不知道 |
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
其实时钟是怎样使用的?
点样可以精确的计数呢?
是来一个脉冲然后+1计数么?
寄存器怎样实现延时呢?
|
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 132434
- 性别
- 男
|
前两个问题没看懂
计数的精度就是时钟周期;
一个时钟周期加或者减一,到你指定的值后做相应的操作;
寄存器加一级就延时一个时钟周期; |
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
我的意思是,我不懂怎样使用时钟,,
需要外加晶振么?
或者是cpld本身已经有时钟指令,可以直接计数?
我现在要实现的是---要将一个信号延迟一段时间
我想利用时钟(或者说一段足够长的脉冲)计数,,计数的这段时间为延迟时间,到指定值延迟就结束。。。
我现在最大疑惑就是这个时钟(或者这段长脉冲)怎样产生?需要外加晶振么?
如果是,,,那也麻烦了点,,cpld自己能实现么?
|
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 132434
- 性别
- 男
|
需要外加晶振,cpld是不会自己产生这个基准的,但是作为你的程序来说,你需要一个确定的基准,所以必须加。
另:如果你计数很大的话,由于结构原因,在cpld中非常的耗资源,因为相对于fpga来说,cpld更适合于做组合逻辑电路,并不太适合做大的时序电路。 |
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
我不需太长的延时,,能延时1~2秒就可以了,,
能否用语言编写一个时钟的程序?免掉外加的晶振呢?
|
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 132434
- 性别
- 男
|
时钟时编写不出来的;
如果你不想用时钟,那么你有规则的信号没有?也就是说你有能体现时间的信号没有?你必须有能解释"秒"这个概念的信号
|
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
我现在最大的疑问就是:
能用软件来产生一段脉冲么? |
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|
- UID
- 132277
- 性别
- 男
|
之前看到一篇文章
FPGA中的延时设计
当需要对电路中的某一信号作一段延时时,可在信号后串接一些"非门"或其它门电路。但在FPGA中,开发软件会在综合设计时将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MAXPLUSII开发FPGA时,可以通过插入LCELL原语或调用延时线模块来产生一定的延时。但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,这样会影响FPGA的性能。因此,可以用高频时钟来驱动一移位寄存器,需要延时的信号作为数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后的信号重新采样,就可以消除误差。当然,当所需延时较长时,这样做比较浪费资源。此外,用VHDL语言进行FPGA设计时,不能用after语句来实现延时,因为目前的综合工具还不能做到如此精确的延时,即程序中的after语句不能被综合。
延时真的这么复杂吗?不需要太精确啊,,精确到ms或者0.1s应该不难实现吧 |
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌, 想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝ & |
|
|
|
|
|