日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EDA 电子设计自动化VHDL系列课程8 – 脉冲信号发生器

發布時間:2023/12/16 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 – 脉冲信号发生器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。