[求助]如何展宽脉冲信号(纳秒级的)
如何将一个10纳秒左右的信号展宽?CPLD的时钟只有10M。谢谢各位了。
展宽10倍左右 ? 没有高人? 没看懂
你说的展宽是把10M变成1M吗? 10M时钟(100ns)很难捕作10ns的信号,不怕丢的话,使用always@(posedge clk) out <= in ;
看看能有几个信号可以展宽。 触发器 5楼正解,用D触发实现一个类似单稳态的东西。不过用10M的时钟,好像不好实现,用50M的应该会好点。 回复【3楼】tomtone
-----------------------------------------------------------------------
不是的。是一个脉冲信号。脉宽10ns左右,用来控制片子,但是太窄,所以需要展宽 回复【4楼】wang110
-----------------------------------------------------------------------
VHDL呢?谢谢 回复【5楼】ssaweee
-----------------------------------------------------------------------
触发器不好弄啊。关键是10M晶振,貌似不好捕捉 回复【6楼】liangwh311
-----------------------------------------------------------------------
谢谢。的确不好捕捉。我测试过。就是用DFF做延时,要是信号脉宽小于时钟脉宽的话,没有输出 回复【9楼】xibu1102007
-----------------------------------------------------------------------
外部用个高速触发器 回复【11楼】ssaweee
-----------------------------------------------------------------------
求甚解。外部? 高速的?推荐一个 脉冲展宽电路,TINA软件上自带了一个例子电路图,应该是可以用的,可以参考一下。 回复【13楼】sl961102
-----------------------------------------------------------------------
TINA软件?能详细说下么?我用的QUARTUS 8.1 TI公司网上提供一个DEMO版的下载,你去下一个,然后打开里面的例子电路就可以了。 用个个D触发器 默认输出是低电平 输入是高电平 。(电平用cpld控制 或者mcu)触发器的时钟接你的那个脉冲。当有脉冲的时候输入一定会变成高电平。这个时候cpld检测到高电平的时候把输入变成低点平,把d触发器复位。这个时候输出就变成低点平。 在有脉冲到你处理完的事件段D触发器的输出的脉冲足够你mcu检测的了。 回复【16楼】lsea
-----------------------------------------------------------------------
我试试 用比较器即可,设置好上下门限,你的CLK过去后,就相当于将高电平 或者低电平 拓宽了,当然,如果你拓宽高电平,低电平就被压缩了。 10M做个计数器, 纳秒级脉冲作其异步复位信号. 回复【楼主位】xibu1102007
-----------------------------------------------------------------------
弄出来没有?出来了的话分享下!~!~! 用单稳态触发器
试试这颗芯片:SN74LVC1G123 技术探讨,不用IC。
其实我以前做过一个类似功能的东东。 但10M的CLK触发只能扩展成140-200ns的的脉冲。
我认为10M以触发方式很难精准到100ns.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
ENTITY DELAY_T IS
GENERIC (delaymax:integer:=1);
PORT (
clk : in std_logic;
tclk : in std_logic;
delayout :buffer std_logic);
END DELAY_T;
ARCHITECTURE epm570 OF DELAY_T IS
SIGNAL tclk_1 :std_logic;
BEGIN
PROCESS(tclk,tclk_1)
BEGIN
if (tclk_1='1')then
delayout<='0';
elsif(tclk'EVENT AND tclk = '0')then
delayout<='1';
end if;
END PROCESS;
PROCESS(clk,delayout)
variable delayT: integer range 0 to delaymax:=0;
BEGIN
if (delayout='0')then
delayT:=0;
tclk_1<='0';
else if(clk'EVENT AND clk = '1')then
if(delayT=delaymax)then
tclk_1<='1';
end if;
delayT:=delayT+1;
end if;
end if;
END PROCESS;
END epm570; SN74LVC1G123,哈哈,这个我用过。当时也是认为信号窄,展宽了一下 如图:这个肯定没问题, 我用过多次了
http://cache.amobbs.com/bbs_upload782111/files_45/ourdev_674812J3ZNVQ.JPG
(原文件名:21.JPG) 回复【24楼】yhzhx01
-----------------------------------------------------------------------
很经典 mark 24楼给出了解决方法,要改变输出脉宽只需要该第二个触发器的时钟就可以 做个记号 mark备用
页:
[1]