永发信息网

FPGA设计移相触发脉冲

答案:1  悬赏:70  手机版
解决时间 2021-02-15 23:51
FPGA设计移相触发脉冲
最佳答案
你的思路基本没动,加了些控制,code如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity PhaseShift3 is
Generic (PH30:natural range 0 to 1000000:=83333; ---30°
PH60:natural range 0 to 1000000:=166666; ---60°
PH90:natural range 0 to 1000000:=249999; ---90°
PH180:natural range 0 to 1000000:=499999); ---180°
port(
clkin: in std_logic;
pin : in std_logic;
pout : out std_logic );
end PhaseShift3;

architecture behave of PhaseShift3 is
signal cnten :std_logic:='0';
signal reset :std_logic:='1';
begin

process(pin, clkin,reset,cnten)
variable countf: natural range 0 to 9000;
variable count0,count: natural range 0 to 1000000;
begin
if (reset='0') then
cnten<='0';
elsif (pin'event and pin='1') then
cnten<='1';
end if;
if (pin'event and pin='1') then
countf:=countf+1;
if countf=8999 then
countf:=0;
end if;
end if;
case countf is ---------每60秒 count0 轮询一次;
when 2999=>count0<=PH30;
when 5999=>count0<=PH60;
when 8999=>count0<=PH90;
when others=>null;
end case;

if (clkin'event and clkin='1') then
if (cnten='1') then
count:=count+1;
if count=count0 then -----在要求相位时置1;
pout<='1';
end if;
if count=PH180 then -----在T/2处置0;
pout<='0';
count:=0;
reset<='0';
end if;
else
count:=count+1;
if count=10 then
reset<='1';
count:=0;
end if;
end if;
end if;
end process;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁来管一管“直销”“国珍松花粉”的骗局
银河砂锅粥在哪里啊,我有事要去这个地方
捷越贷款终审签订合同后还会再打电话吗
西安区牡丹江唐五利缘面食坊地址在哪,我要去
范记饼屋地址在哪,我要去那里办事
铭瑄B250MD4跟i5 7400冲突吗
今天天气真好英文意思。
华新堡垒水泥经销部(康庄村卫生所东北)在哪里
皇家守卫军第8关冰里的怪物怎么放出来
我有一副墨镜,没有度数的,我想拿这个眼镜去
形容来往的车马活人连续不断写一个词语
黑芝麻泡一夜 这样的颜色正常吗?
保健品深海鱼油的凝结温度是多少
关于地下工程防水混凝土配合比的说法,正确的
山大电力电子方向就业????
推荐资讯
芒果干和啤酒一起吃会起什么反应
顺达专业电动工具怎么去啊,有知道地址的么
梨园邮政支局这个地址在什么地方,我要处理点
牛仔基地精品男装怎么去啊,有知道地址的么
张家坪怎么去啊,有知道地址的么
型男会社地址在哪,我要去那里办事
人之初婴童时尚生活城在哪里啊,我有事要去这
汉川市孝感泵站河社区居委会地址在哪里啊
鑫源驾校在什么地方啊,我要过去处理事情
保靖县湘西皇朝网络城这个地址怎么能查询到,
社保、医保、公积金跨市转移流程
蛋蛋挠破皮了怎么办????
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?