基于EDA智能函数发生器的设计(5)

2019-08-30 17:06

乐山职业技术学院毕业设计

参考文献

[1]潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2007.9

[2] 徐守堂刘艳惠,李娜,孔旭梅.EDA技术教程.西北师范大学知行学院—计算机与电子信息科学系 [3]潭会生,张昌凡.EDA技术及应用.西安电子科技大学出版社,2001.9 [4]李洋. EDA技术使用教程.机械工业出版社,2002.3

17

乐山职业技术学院毕业设计

附录

1、递增波形源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY icrs IS

PORT(clk,reset: IN STD_LOGIC;

q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END icrs;

ARCHITECTURE behave OF icrs IS

BEGIN

PROCESS(clk,reset)

VARIABLE tmp : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

IF reset='0' THEN

tmp:= \复位信号清零 ELSIF clk'EVENT AND clk='1' THEN IF tmp=\

tmp:=\递增到最大值清零 ELSE

tmp:=tmp+1;--递增运算 END IF; END IF; q<=tmp;

END PROCESS; END behave;

2、递减波形源程序 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dcrs IS

PORT (clk,reset:IN STD_LOGIC;

q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END dcrs;

ARCHITECTURE behave OF dcrs IS BEGIN

PROCESS(clk,reset)

VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

IF reset='0' THEN

tmp:=\复位信号置最大值

ELSIF clk'EVENT AND clk='1' THEN--检测时钟上升沿 IF tmp=\

tmp:=\递减到0置最大值 ELSE

tmp:=tmp-1;--递减运算

18

乐山职业技术学院毕业设计

END IF; END IF; q<=tmp;

END PROCESS; END behave;

3、三角波形源程序 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY delta IS

PORT(clk,reset:IN STD_LOGIC;

q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); end delta;

ARCHITECTURE behave OF delta IS BEGIN

PROCESS(clk,reset) VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); VARIABLE a:STD_LOGIC; BEGIN

IF reset='0' THEN

tmp:=\复位信号为0,置最小值

ELSIF clk'EVENT AND clk='1' THEN--检测时钟上升沿 IF a='0' THEN

IF tmp=\tmp:=\置最大值

a:='1';

ELSE --不是最大值时递增 tmp:=tmp+1;--递增运算 END IF;

ELSE

IF tmp =\tmp:=\置最小值 a:='0';

ELSE --a为1时,执行递减运算 tmp:=tmp-1;--递减运算 END IF; END IF; END IF; q<=tmp;

END PROCESS; END behave;

4、阶梯波形程序源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ladder IS

19

乐山职业技术学院毕业设计

PORT(clk,reset:IN STD_LOGIC;

q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ladder;

ARCHITECTURE behave OF ladder IS

BEGIN

PROCESS(clk,reset)

VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0); --定义内部变量 VARIABLE a: STD_LOGIC; BEGIN

IF reset='0' THEN

tmp:=\复位信号为0,置最小值

ELSIF clk'EVENT AND clk='1' THEN--检测时钟上升沿 IF a='0' THEN--判断a数值,计数。 IF tmp=\

tmp:=\计数到最大清零 a:='1'; ELSE

tmp:=tmp+16;--阶梯常数为16,可修改 a:='1'; END IF; ELSE

a:='0';--循环计数 END IF; END IF;

q<=tmp;

END PROCESS; END behave;

5、正弦波源程序 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sin IS

PORT(clk,clr:IN STD_LOGIC;

d: OUT INTEGER RANGE 0 TO 255); END sin ;

ARCHITECTURE behave OF sin IS BEGIN

PROCESS(clk,clr)

VARIABLE tmp: INTEGER RANGE 0 TO 63; BEGIN IF clr='0'THEN d<=0;

ELSIF clk'EVENT AND clk='1'THEN IF tmp=63 THEN tmp:=0; ELSE

20

乐山职业技术学院毕业设计

tmp:=tmp+1; END IF;

CASE tmp IS

WHEN 00=>d<=255;WHEN 01=>d<=254;WHEN 02=>d<=252; WHEN 03=>d<=249;WHEN 04=>d<=245;WHEN 05=>d<=239; WHEN 06=>d<=233;WHEN 07=>d<=225;WHEN 08=>d<=217; WHEN 09=>d<=207;WHEN 10=>d<=197;WHEN 11=>d<=186; WHEN 12=>d<=174;WHEN 13=>d<=162;WHEN 14=>d<=150; WHEN 15=>d<=137;WHEN 16=>d<=124;WHEN 17=>d<=112; WHEN 18=>d<=99; WHEN 19=>d<=87; WHEN 20=>d<=75; WHEN 21=>d<=64; WHEN 22=>d<=53; WHEN 23=>d<=43; WHEN 24=>d<=34; WHEN 25=>d<=26; WHEN 26=>d<=19; WHEN 27=>d<=13; WHEN 28=>d<=8; WHEN 29=>d<=4; WHEN 30=>d<=1; WHEN 31=>d<=0; WHEN 32=>d<=0; WHEN 33=>d<=1; WHEN 34=>d<=4; WHEN 35=>d<=8; WHEN 36=>d<=13; WHEN 37=>d<=19; WHEN 38=>d<=26; WHEN 39=>d<=34; WHEN 40=>d<=43; WHEN 41=>d<=53; WHEN 42=>d<=64; WHEN 43=>d<=75; WHEN 44=>d<=87; WHEN 45=>d<=99; WHEN 46=>d<=112;WHEN 47=>d<=124; WHEN 48=>d<=137;WHEN 49=>d<=150;WHEN 50=>d<=162; WHEN 51=>d<=174;WHEN 52=>d<=186;WHEN 53=>d<=197; WHEN 54=>d<=207;WHEN 55=>d<=217;WHEN 56=>d<=225; WHEN 57=>d<=233;WHEN 58=>d<=239;WHEN 59=>d<=245; WHEN 60=>d<=249;WHEN 61=>d<=252;WHEN 62=>d<=254; WHEN 63=>d<=255;

WHEN OTHERS=>NULL; END CASE; END IF; END PROCESS;

END behave; 6、方波源程序 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY square IS

PORT(clk,clr:IN STD_LOGIC; q:OUT INTEGER RANGE 0 TO 255); END square;

ARCHITECTURE behave OF square IS SIGNAL a:BIT; BEGIN

PROCESS(clk,clr)

VARIABLE cnt:INTEGER; --定义内部整数变量 BEGIN

IF clr='0' THEN

a<='0';

ELSIF clk'EVENT AND clk='1' THEN--检测时钟上升沿

21

乐山职业技术学院毕业设计

IF cnt<63 THEN--计数64个点 cnt:=cnt+1;--计数

ELSE

cnt:=0; --当计数的值大于64时,清零。

a<=NOT a; --对内部a变量取反,a变化已启动进程END PROCESS; END IF; END IF; END PROCESS; PROCESS(clk,a) BEGIN

IF clk'EVENT AND clk='1' THEN IF a='1' THEN

q<=255; --a=1,输出一个波形周期内的高电平 ELSE

q<=0; --a=0,输出一个波形周期的低电平。 END IF; END IF; END PROCESS; END behave;

7、波形选择模块源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY ch61a IS

PORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0); d0,d1,d2,d3,d4,d5:IN STD_LOGIC_VECTOR(7 DOWNTO 0); q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ch61a;

ARCHITECTURE behave OF ch61a IS BEGIN

PROCESS(sel) BEGIN

CASE sel IS

WHEN\递增波形输出 WHEN\递减波形输出 WHEN\三角波形输出 WHEN\阶梯波形输出 WHEN\正弦波形输出 WHEN\方波输出 WHEN OTHERS=>NULL; END CASE; END PROCESS; END behave;

22


基于EDA智能函数发生器的设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1、建筑间距、建筑退让技术规范(送审稿)2006-9-5

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: