EDA 电子设计自动化VHDL系列课程8 – 脉冲信号发生器
生活随笔
收集整理的這篇文章主要介紹了
EDA 电子设计自动化VHDL系列课程8 – 脉冲信号发生器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
EDA 電子設計自動化VHDL系列課程8 – 脈沖信號發生器
本EDA系列介紹的系統環境是:
軟件: VHDL編程語言 ;
工具: Quartus13.0
FPGA 芯片是: Cyclone III : EP3C10E144C8
電路板細節在: 添加鏈接描述
脈沖信號發生器 VHDL 示例 有兩種方法
1) 基于分頻器的脈沖信號發生器
先對高頻時鐘信號clk 進行分頻,然后用 timer 保存脈沖寬度。會降低時間精度。但是可以慢速展示。
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY pulsegen ISPORT(PUL, clk: IN STD_LOGIC; q: OUT STD_LOGIC ); END pulsegen;ARCHITECTURE one OF pulsegen IS CONSTANT FP: INTEGER:= 39999999; SIGNAL qb: INTEGER RANGE 0 TO FP; SIGNAL timer: INTEGER RANGE 0 TO 800; SIGNAL clock: STD_LOGIC;BEGINPROCESS(clk)BEGIN IF clk'EVENT AND clk = '1' THENqb <= qb + 1;IF qb = FP THEN clock <= NOT clock; qb <= 0; END IF;END IF;END PROCESS;PROCESS(clock)BEGINIF clock'EVENT and clock = '1' THEN IF PUL = '1' THEN timer <= timer + 1;ELSIF timer > 0 THEN q <= '1'; timer <= timer -1;ELSE q <= '0'; END IF; END IF;END PROCESS;END one;1) 基于時鐘信號clk的脈沖信號發生器
該程序直接用clk 時鐘頻率計時,精度高些。
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY pulsegen ISPORT(PUL, clk: IN STD_LOGIC; q: OUT STD_LOGIC ); END pulsegen;ARCHITECTURE one OF pulsegen IS SIGNAL timer: INTEGER RANGE 0 TO 39999999; -- 根據需要調整BEGINPROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THEN IF PUL = '1' THEN timer <= timer + 1;ELSIF timer > 0 THEN q <= '1'; timer <= timer -1;ELSE q <= '0'; END IF; END IF;END PROCESS;END one;總結
以上是生活随笔為你收集整理的EDA 电子设计自动化VHDL系列课程8 – 脉冲信号发生器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 方正BPM开发平台(FIX ES2007
- 下一篇: 误关闭阿里云主机的网络后如何进行恢复