亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? boxing.txt

?? 波形產生器:用VHDL編寫的波形產生器程序
?? TXT
字號:
用VHDL編寫的波形產生器程序
library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity mine is

port(clk : in std_logic;--時鐘信號輸入

set, clr, up, down, zu, zd : in std_logic;--各個波形特征的調節觸發信號

posting : in std_logic;--任意波鍵盤置入信號

u0,d0,sw : in std_logic;--方波A、B的切換sw,和方波B的幅度調節按鍵

ss : in std_logic_vector( 3 downto 0 );--檔位選擇信號

sss : in std_logic_vector( 4 downto 0 );--波形選擇信號

Data3, Data2, Data1,Data0 : in std_logic_vector(3 downto 0); --BCD碼輸入

p180 : out std_logic;--預留接口

lcd : out std_logic_vector(7 downto 0);--顯示輸出

shift : out std_logic_vector(3 downto 0);--位碼輸出

dd, a : out std_logic_vector( 7 downto 0));--波形、幅度數據輸出

end mine;

architecture one of mine is

subtype word is std_logic_vector( 7 downto 0 );

typeunit is array(63 downto 0) of word;

signal ram : unit;

signal qqq : integer range 0 to 250000000;

signal qq : integer range 0 to 78125000;

signal tmp : integer range 0 to 9999;

signal coun : integer range 0 to 78125000;

signal coun0 : integer range 0 to 250000000;

signal b : integer range 0 to 78125000;

signal c : integer range 0 to 500000000;

signal z, con : integer range 0 to 63;

signal f : std_logic_vector( 7 downto 0 );

signal amp, amp0, d : std_logic_vector(7 downto 0);

signal bcd0,bcd1,bcd2,bcd3 : integer range 0 to 9;

signal bcd01,bcd11,bcd21,bcd31 : integer range 0 to 9;

signal bcd00,bcd10,bcd20,bcd30 : integer range 0 to 9;

signal y : integer range 0 to 9;

signal addr : integer range 0 to 63;

begin

qq<=781250 when ss="1000" else

7812500 when ss="0100" else

78125000 when ss="0010" else

78125;

--qq信號對應SW=0時的檔位選擇信號SS,實現方波A和其他三種波形的頻率預置

qqq<= 500000 when ss="1000" else

5000000 when ss="0100" else

50000000 when ss="0010" else

50000;

--qqq信號對應SW=1時的檔位選擇信號SS,實現方波B的頻率預置

process(clk)

--此進程分別描述了各種波形的頻率、幅度(方波A的占空比)調節以及各種波形的任意線

--形疊加等。

variable count4 : integer range 0 to 6250000;

variable count : integer range 0 to 78125000;

variable count3 : integer range 0 to 250000000;

variable count1 : integer range 0 to 12500000;

variable count0 : integer range 0 to 3249999;

variable ddd : std_logic_vector(9 downto 0);

variable dd0,dd1,dd2,dd3,dd4 : integer range 0 to 255;

variable adr : integer range 0 to 63;

begin

if rising_edge(clk) then

if posting='1' then

if count4=6249999 then count4:=0;

adr:=conv_integer(Data3)*10+conv_integer(Data2);--存儲單位地址

if adr<=64 then

if set='1' then ram(adr)<=conv_std_logic_vector((conv_integer(Data1)*10

+conv_integer(Data0))*2,8); --對置入的任意波形數據進行儲存

elsif clr='1' thenadr:=0;--存儲器所有單元清零

for i in 0 to 63 loop

ram(i)<="00000000";

end loop;

end if;

end if;

else count4:=count4+1;

end if;

else

if set='1' then coun<=0; b<=0; coun0<=0;c<=0;z<=31;amp0<="01111111"; addr<=0;

tmp<=conv_integer(Data3)*1000+conv_integer(Data2)*100

+conv_integer(Data1)*10+conv_integer(Data0);--頻率數據

amp<="01111111";--幅值

else

if tmp>0 then

if sw='0' then

if coun<qq then coun<=coun+tmp; b<=b+1;--頻率到采樣點間隔脈沖數轉換

else

if count=b then count:=1;

if f=63 then f<="00000000";

else f<=f+1;

end if;

if sss="00010" then--方波A

if con<=z thendd<=amp0; con<=con+1;

elsif con=63 then con<=0; dd<="00000000";

else con<=con+1; dd<="00000000";

end if;

elsif sss="10000" then dd<=d;--正弦波

elsif sss="00100" then dd<=f(5 downto 0)&"00";--鋸齒波

elsif sss="01000" then --三角波

if f>31 then dd<=("111111"-f(5 downto 0))&"00";

else dd<=f(5 downto 0)&"00";

end if;

elsif sss="00001" then--任意波

if addr<63 then dd<=ram(addr); addr<=addr+1;

elsif addr=63 then dd<=ram(63); addr<=0;

end if;

else--完成5種波形的線形疊加

if sss(1)='1' then

if con<=z then con<=con+1;

dd0:=conv_integer(amp0);--方波波形數據dd0

else con<=con+1; dd0:=0;

end if;

end if;

if sss(4)='1' then dd1:=conv_integer(d);--正弦波波形數據dd1

end if;

if sss(2)='1' then dd2:=conv_integer(f(5 downto 0)&"00");

--鋸齒波波形數據dd2

end if;

if sss(3)='1' then

if f>31 then dd3:=conv_integer(("111111"-f(5 downto 0))&"00");

else dd3:=conv_integer(f(5 downto 0)&"00"); --三角波波形數據dd3

end if;

end if;

if sss(0)='1' then

if addr<63 then dd4:=conv_integer(ram(addr)); addr<=addr+1;

elsif addr=63 then dd4:=conv_integer(ram(63)); addr<=0;

end if;--任意波波形數據dd4

end if;

ddd:=conv_std_logic_vector((dd0+dd1+dd2+dd3+dd4),10);

--波形線形疊加輸出

dd<=ddd(9 downto 2);

end if;

else count:=count+1;

end if;

end if;

else

if coun0<qqq then coun0<=coun0+tmp; c<=c+1;

else

if count3<=c/2 then count3:=count3+1; dd<=amp0;

elsif count3=c then count3:=1;dd<="00000000";

else count3:=count3+1; dd<="00000000";

end if;

end if;

end if;

end if;

if count1=12499999 then count1:=0;--調方波A的占空比

if zu='1' then

if z<63 then z<=z+1;

else z<=63;

end if;

elsif zd='1' then

if z>0 then z<=z-1;

else z<=0;

end if;

end if;

else count1:=count1+1;

end if;

if count0=3249999 then count0:=0;

--up、down對4種波形幅度調節,u0、d0進一步對方波進行幅度調節

if u0='1' then

if amp0<"11111111" then amp0<=amp0+1;

else amp0<="11111111";

end if;

elsif d0='1' then

if amp0>"00000000" then amp0<=amp0-1;

else amp0<="00000000";

end if;

elsif up='1' then

if amp<"11111111" then amp<=amp+1;

else amp<="11111111";

end if;

elsif down='1' then

if amp>"00000000" then amp<=amp-1;

else amp<="00000000";

end if;

end if;

else count0:=count0+1;

end if;

end if;

end if;

end if;

end process;

a<=amp;--將幅值輸出。

cov_a:process(clk,amp,amp0)

--主要實現各波形幅度值到BCD碼的轉化,由于方波和其他三種波形的幅度調節方式、精

--度不同,因此對幅度的處理方式分兩種:“sss="00010" or sw='1'”是判斷輸出波形是否為

--方波(A或B),bcd00,bcd10,bcd20,bcd30是本進程的輸出。

variable count : integer range 0 to 50004225;

variable counter : integer range 0 to 500055;

variable count1,count0 : integer range 0 to 4999999;

begin

if rising_edge(clk) then

if sss="00010" or sw='1' then count0:=0;--方波

if count1=4999999 then count1:=0; bcd0<=0; bcd1<=0; bcd2<=0; bcd3<=0;

count:=(conv_integer(amp))*(conv_integer(amp0))*769; --幅值運算

elsif count1=4999900 then count1:=count1+1;

bcd00<=bcd0; bcd10<=bcd1; bcd20<=bcd2; bcd30<=bcd3;--數據輸出

else count1:=count1+1;--二進制碼到BCD碼的數據轉換

if count>9999999 then count:=count-10000000; bcd0<=bcd0+1;

elsif count>999999 then count:=count-1000000; bcd1<=bcd1+1;

elsif count>99999 then count:=count-100000; bcd2<=bcd2+1;

elsif count>9999 then count:=count-10000; bcd3<=bcd3+1;

else null;

end if;

end if;

else count1:=0;--正弦波、三角波、鋸齒波

if count0=4999999 then counter:=conv_integer(amp)*1961;

count0:=0; bcd01<=0; bcd11<=0; bcd21<=0; bcd31<=0;

elsif count0=4999000 then bcd00<=bcd01; bcd10<=bcd11; bcd20<=bcd21;

bcd30<=bcd31; count0:=count0+1;

else count0:=count0+1;

if counter>99999 then counter:=counter-100000; bcd01<=bcd01+1;

elsif counter>9999 then counter:=counter-10000; bcd11<=bcd11+1;

elsif counter>999 then counter:=counter-1000; bcd21<=bcd21+1;

elsif counter>99 then counter:=counter-100; bcd31<=bcd31+1;

else null;

end if;

end if;

end if;

end if;

end process;

process(clk)--輸出波形幅度(峰-峰值)數據譯碼動態顯示

variable count : integer range 0 to 499999;

begin

if rising_edge(clk) then

if count<=124999 then y<=bcd00; count:=count+1; shift<="0111"; lcd(0)<='0';

elsif count<=249999 then y<=bcd10; count:=count+1; shift<="1011";lcd(0)<='1';

elsif count<=374999 then y<=bcd20; count:=count+1; shift<="1101";lcd(0)<='1';

elsif count<499999 then y<=bcd30; count:=count+1; shift<="1110";lcd(0)<='1';

elsif count=499999 then y<=bcd30; count:=0; shift<="1110";lcd(0)<='1';

end if;

end if;

case y is--7段碼譯碼

when 0 => lcd(7 downto 1)<="0000001";

when 1 => lcd(7 downto 1)<="1001111";

when 2 => lcd(7 downto 1)<="0010010";

when 3 => lcd(7 downto 1)<="0000110";

when 4 => lcd(7 downto 1)<="1001100";

when 5 => lcd(7 downto 1)<="0100100";

when 6 => lcd(7 downto 1)<="0100000";

when 7 => lcd(7 downto 1)<="0001111";

when 8 => lcd(7 downto 1)<="0000000";

when 9 => lcd(7 downto 1)<="0000100";

when others => lcd(7 downto 1)<="0000001";

end case;

end process;

ym:process(clk)--正弦波在一個周期內時域上的64個采樣點的波形數據

begin

if rising_edge(clk) then

case f is

when "00000000"=> d<="11111111"; when "00000001"=> d<="11111110";

when "00000010"=> d<="11111100";when "00000011"=> d<="11111001";

when "00000100"=> d<="11110101"; when "00000101"=> d<="11101111";

when "00000110"=> d<="11101001";when "00000111"=> d<="11100001";

when "00001000"=> d<="11011001"; when "00001001"=> d<="11001111";

when "00001010"=> d<="11000101";when "00001011"=> d<="10111010";

when "00001100"=> d<="10101110"; when "00001101"=> d<="10100010";

when "00001110"=> d<="10010110";when "00001111"=> d<="10001001";

when "00010000"=> d<="01111100"; when "00010001"=> d<="01110000";

when "00010010"=> d<="01100011";when "00010011"=> d<="01010111";

when "00010100"=> d<="01001011"; when "00010101"=> d<="01000000";

when "00010110"=> d<="00110101";when "00010111"=> d<="00101011";

when "00011000"=> d<="00100010"; when "00011001"=> d<="00011010";

when "00011010"=> d<="00010011";when "00011011"=> d<="00001101";

when "00011100"=> d<="00001000"; when "00011101"=> d<="00000100";

when "00011110"=> d<="00000001";when "00011111"=> d<="00000000";

when "00100000"=> d<="00000000"; when "00100001"=> d<="00000001";

when "00100010"=> d<="00000100";when "00100011"=> d<="00001000";

when "00100100"=> d<="00001101"; when "00100101"=> d<="00010011";

when "00100110"=> d<="00011010";when "00100111"=> d<="00100010";

when "00101000"=> d<="00101011"; when "00101001"=> d<="00110101";

when "00101010"=> d<="01000000";when "00101011"=> d<="01001011";

when "00101100"=> d<="01010111"; when "00101101"=> d<="01100011";

when "00101110"=> d<="01110000";when "00101111"=> d<="01111100";

when "00110000"=> d<="10001001"; when "00110001"=> d<="10010110";

when "00110010"=> d<="10100010";when "00110011"=> d<="10101110";

when "00110100"=> d<="10111010"; when "00110101"=> d<="11000101";

when "00110110"=> d<="11001111";when "00110111"=> d<="11011001";

when "00111000"=> d<="11100001"; when "00111001"=> d<="11101001";

when "00111010"=> d<="11101111";when "00111011"=> d<="11110101";

when "00111100"=> d<="11111001"; when "00111101"=> d<="11111100";

when "00111110"=> d<="11111110";when "00111111"=> d<="11111111";

when others=> null;

end case;

end if;

end process;

p180<='1';

end one;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品中文字幕一区| 91精品欧美福利在线观看| 国产suv精品一区二区三区| 久色婷婷小香蕉久久| 五月婷婷综合网| 亚洲成人动漫精品| 亚洲综合男人的天堂| 亚洲狠狠丁香婷婷综合久久久| 国产精品久久久久久久久动漫| 日本一区二区三区四区| 久久久精品一品道一区| 国产欧美日韩亚州综合| 中文字幕免费不卡在线| 国产精品理论片| 亚洲免费观看高清在线观看| 亚洲精品视频在线观看免费| 一区二区三区中文字幕精品精品 | 在线观看一区日韩| 欧美偷拍一区二区| 欧美丰满少妇xxxxx高潮对白| 欧美日韩免费一区二区三区视频| 欧美日韩精品三区| 91精品国产手机| 久久伊人中文字幕| 中文字幕在线不卡一区二区三区| 亚洲欧美综合在线精品| 亚洲国产一区二区视频| 美女视频黄 久久| 国产精品亚洲专一区二区三区| 99久久er热在这里只有精品66| 欧美性三三影院| 欧美一区二区视频网站| 久久久精品国产99久久精品芒果| 中文字幕中文乱码欧美一区二区| 亚洲精品日韩专区silk| 蜜桃视频在线观看一区| 一区二区高清免费观看影视大全| 久久国产精品72免费观看| 亚洲大片精品永久免费| 欧美一级理论片| 26uuu国产电影一区二区| 欧美国产精品劲爆| 亚洲mv在线观看| 国产精品羞羞答答xxdd| 欧洲人成人精品| 久久影院电视剧免费观看| 一区二区在线看| 精品在线你懂的| 日本韩国欧美国产| 2024国产精品视频| 亚洲一二三四久久| 国产高清久久久| 欧美色倩网站大全免费| 久久精品人人做人人综合| 亚洲一区二区免费视频| 国产麻豆精品在线观看| 欧美视频在线一区| 国产精品你懂的在线| 日韩国产欧美在线播放| 不卡视频在线观看| 欧美成人女星排行榜| 亚洲综合一区二区| 成人黄色一级视频| 日韩欧美一区在线| 一区二区三区四区激情| 国产东北露脸精品视频| 欧美精品日日鲁夜夜添| 亚洲欧美日韩国产一区二区三区| 久草中文综合在线| 欧美性色黄大片| 综合av第一页| 国产精品18久久久久久久网站| 777a∨成人精品桃花网| 一区二区三区在线影院| 国产成人自拍在线| 精品国产区一区| 蜜臀99久久精品久久久久久软件| 日本伦理一区二区| 国产精品久久一级| 国产成人精品亚洲777人妖 | 日韩一区二区免费电影| 一区二区三区在线影院| 91婷婷韩国欧美一区二区| 国产欧美精品在线观看| 激情综合色播激情啊| 51久久夜色精品国产麻豆| 亚洲一区二三区| 色国产精品一区在线观看| 欧美国产日韩a欧美在线观看| 极品销魂美女一区二区三区| 欧美精品三级日韩久久| 性久久久久久久| 欧美午夜电影网| 亚洲国产你懂的| 欧美中文字幕一区| 亚洲一区二区高清| 欧洲视频一区二区| 亚洲国产一区二区三区| 欧洲精品一区二区| 亚洲综合成人在线| 欧美中文字幕久久| 午夜久久久久久久久久一区二区| 欧美日韩在线播| 天天操天天色综合| 91精品国产品国语在线不卡| 日韩av在线免费观看不卡| 欧美一区三区二区| 蜜桃av噜噜一区| 欧美电影精品一区二区| 美女国产一区二区三区| 7777精品伊人久久久大香线蕉的 | 国产亚洲视频系列| 国产成人综合亚洲91猫咪| 久久在线免费观看| 成人av在线网站| 国产精品不卡一区| 91色porny在线视频| 成人欧美一区二区三区白人| 一本久久综合亚洲鲁鲁五月天| ㊣最新国产の精品bt伙计久久| av电影在线观看完整版一区二区| 国产精品视频yy9299一区| 福利电影一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 精品卡一卡二卡三卡四在线| 亚洲综合av网| 欧美精品欧美精品系列| 老司机精品视频导航| 3d动漫精品啪啪一区二区竹菊| 久久精品国产久精国产爱| 欧美一级理论性理论a| 久久电影网电视剧免费观看| 国产午夜亚洲精品理论片色戒| 国产不卡免费视频| 亚洲综合一区在线| 欧美一区二区成人| 成人中文字幕在线| 亚洲视频一区二区在线| 91精品在线观看入口| 麻豆成人91精品二区三区| 国产精品欧美经典| 国产91精品露脸国语对白| 一区二区三区在线视频免费观看| 一区二区三区成人在线视频| 欧美色老头old∨ideo| 狠狠色狠狠色合久久伊人| 中文字幕av不卡| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 成人开心网精品视频| 国产精品国产三级国产aⅴ入口| 不卡的av电影在线观看| 日本在线不卡视频| 久久免费看少妇高潮| 欧美日韩一区二区在线视频| 激情伊人五月天久久综合| 亚洲欧洲综合另类| 欧美一区二区三区免费在线看 | 精品一区二区在线免费观看| 国产欧美精品区一区二区三区| 欧美日韩亚洲综合| 国产精品亚洲综合一区在线观看| 亚洲国产精品久久不卡毛片 | 亚洲一区二区av在线| 精品国产乱码久久久久久1区2区| 色综合av在线| 美女在线观看视频一区二区| 亚洲免费观看高清完整版在线观看 | 欧美日韩精品一区视频| 国产麻豆精品在线| 日韩美女视频一区二区| 欧美精品一区二区蜜臀亚洲| 91麻豆国产精品久久| 国产一区二区在线影院| 亚洲精品免费在线播放| 亚洲国产精品精华液ab| 欧美日韩免费在线视频| 色综合天天狠狠| 午夜久久久久久久久久一区二区| 日韩伦理av电影| 国产免费成人在线视频| 欧美人成免费网站| 欧美性色黄大片手机版| 粉嫩av一区二区三区在线播放| 久久9热精品视频| 亚洲一线二线三线久久久| 一区免费观看视频| 精品国产精品网麻豆系列| 欧美精选一区二区| 亚洲第一av色| 亚洲综合成人网| 一区二区三区四区高清精品免费观看| 亚洲成人资源在线| 亚洲一区在线视频| 亚洲欧美一区二区三区极速播放 | 青青草国产精品97视觉盛宴| 国产精品视频在线看| 国产亚洲精品7777| 欧美日韩免费视频| 欧美日韩日日摸| 欧美伦理电影网|