毕业设计智能函数发生器eda应用与设计内容摘要:

ic。 定义中间变量分段 begin if rst=39。 039。 then tmp:=00000000。 elsif clk39。 event and clk=39。 139。 then 异步复位 if in1=39。 039。 then 当 in1 为 0 时 if tmp=11111110 then 并且计数到 FEH 时 tmp:=11111111。 则赋值 tmp 为 FFH in1:=39。 139。 且 in1 为 1 else tmp:=tmp+1。 若计数没 有 递增 到 FEH,则继续递 增 end if。 else 6 if tmp=00000001 then 当 in1 为 1 时,并且计数到 01H tmp:=00000000。 则赋值 tmp 为 00H in1:=39。 039。 且 in1 为 0 else tmp:=tmp1。 计数没有递减到 01H,则继续递减 end if。 end if。 end if。 q=tmp。 输出赋值 end process。 结束进程 具体完整源程序见附录。 三角波模块仿真图如下: 图 4 三角波模块仿真图 阶梯波模块 阶梯波模块主要完成 阶梯波的形成和添加异步复位功能, 阶梯波的程序描述与三角波类似,也是通过变量控制 使中间变量从 00H 到 FFH 之间加 10H 递增,递增到 FFH 后复位为00H。 创建的元件符 号包括 三个端口,即时钟信号 clk 端口和复位信号端口 rst,以及输出端口 q。 阶梯波 部分 源程序 和注释 如下: Begin 进程开始 if rst=39。 039。 then 7 tmp:=00000000。 异步复位 elsif clk39。 event and clk=39。 139。 then 时钟上升沿 if data=39。 039。 then 当 data 为 0 时 if tmp=11111111 then 且 tmp 计数到 FFH 时 tmp:=00000000。 则将 tmp 复位为 00H data:=39。 139。 且令 data 为 1 else tmp:=tmp+16。 若 tmp 未计数到 FFH 时,则继续加 10H 递增 data:=39。 139。 并令 data 为 1 end if。 else data:=39。 039。 否则 data 继续为 0 end if。 end if。 阶梯波模块仿真图如下: 图 5 阶梯波模块仿真图 正弦波模块 正弦波模块完成输出一个正弦波的设计 以及异步复位功能, 定义的中间变量为 tmp 整数类型, 变化范围为 0~63,调用 case语句,取一个周期类 64 个点分别对应的正弦值,每个点对应的正弦值可由网上对应的表格查得,即可以创建有时钟信号 clk 和复位信号 clr 输入和输出端口 d 的元件符号。 正弦波模块 部分 源程序 及注释 如下: 8 variable tmp:integer range 0 to 63。 定义中间 变量为整数类型,变化范围为 0~63 begin if clr=39。 039。 then d=0。 异步清零 elsif clk39。 event and clk=39。 139。 then 时钟信号上升沿 if tmp=63 then tmp 计数到 63 后,复位为 0 tmp:=0。 else tmp:=tmp+1。 若没有计数到 63,则继续加 1 递增 end if。 case tmp is case 语句,取正弦函数 64 个点,对应正弦函数值 when 00=d=255。 when 01=d=254。 when 02=d=252。 ……………… when 60=d=249。 when 61=d=252。 when 62=d=254。 when 63=d=255。 end case。 结束 case 语句 具体源程序见附录。 正弦波模块仿真图如下: 图 6 正弦波模块仿真图 方波模块 方波模块即是完成方波输出地设计,以及有异步复位的功能,该程序采用了两个进程语句,第一个进程 是完成在时钟上升沿的时候, t 从 0 计数到 63 时, data 去反,在第二个进 9 程中,完成在时钟上升沿同步时, data=1 时输出 q=FFH, data=0 时输出 q=00H,创建的元件符号同样是三个端口,即时钟信号 clk 和复位信号 clr,以及一个 8 位二进制的输出端口 q。 源程序如下: signal data:bit。 在结构体中定义 信号,数据类型为位数据类型 begin process(clk,clr) 结构体中的进程 variable t:integer。 在进程中定义变量,数据类型为整型 begin if clr=39。 039。 then data=39。 039。 异步清零 elsif clk39。 event and clk=39。 139。 then 时钟上升沿 if t63 then 若 t63,则 t 加 1 递增 t:=t+1。 else t:=0。 若 t=63,则 t 复位为 0 data=not(data)。 并将 data 取反 end if。 end if。 end process。 process(clk,data) 以 clk、 data 为敏感信号的进程 begin if clk39。 event and clk=39。 139。 then 时钟上升沿 if data=39。 139。 then 当 data 为 1 时 q=255。 输出为 255 else q=0。 当 data 为 0 时 ,输出为 0 end if。 end if。 end process; 10 方波模块仿真图如下 : 图 7 方波模块仿真图 选择模块 选择模块,即完成通过选择键能输出对应的波形。 创建一个元件符号有 1个选择输入端口和 6 个波形输入端口以及一个输出端口。 程序以。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。