VHDL正弦信号发生器设计

VHDL正弦信号发生器设计
VHDL正弦信号发生器设计

VHDL正弦信号发生器设计

第一章绪论.............................................................. II

1.1 课题的研究背景与意义............................................. II

1.2 课题的国内外研究现状............................................. II

1.3 本文主要研究内容................................................. II 第二章主要工具及其应用................................... 错误!未定义书签。

2.1 硬件设计技术...................................... 错误!未定义书签。

2.2 常用工具.......................................... 错误!未定义书签。

2.2.1 EDA .......................................... 错误!未定义书签。

2.2.2 VHDL ......................................... 错误!未定义书签。

2.2.3 DAC0832 ...................................... 错误!未定义书签。

2.3 本章小结.......................................... 错误!未定义书签。第三章系统设计与实现..................................................... V

3.1倍频器模块......................................................... V

3.2主程序模块......................................................... V

3.3 波形显示模块..................................................... VI

3.4 频率显示模块..................................................... VI 第四章软件仿真......................................................... VII 第五章硬件测试........................................................ VIII

5.1 编译........................................................... VIII

5.2 引脚的锁定....................................................... IX

5.3 编程下载......................................................... IX

5.4 硬件验证.......................................................... X

5.5 波形显示......................................................... XI

第一章绪论

1.1 课题的研究背景与意义

信号发生器作为一种常用的信号源,在现代通信领域和测量领域得到广泛的应用。本文设计了基本设计方案,在现有单一信号发生器的基础上,加上其它信号模块,通过组合与设计,用数模转换器(D/A)将选中的信号源发出的信号由数字信号转换为模拟信号,再用示波器显示出来,其信号发生器的结构框图如图1-1所示。

图1-1 信号发生器结构框图

1.2 课题的国内外研究现状

信号发生器从上世纪20年代诞生发展到如今先后经历了模拟式信号发生器-数字式信号发生器-虚拟信号发生器三个发展阶段。

从40年到60年代期间,信号发生器主要采用以电子管工艺为基础的模拟电路构成;到了60年代中期,随着晶体管工艺的出现、大规模和超大规模集成电路的应用,使信号发生器得到了一定的发展,其信号的输出精度得到一定提高。

到了70年代微处理器出现以后,使得信号发生器的产生方法发生了改变;这个时期的信号发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。

1.3 本文主要研究内容

在本次的设计中是按模块来实现的,设计总共分为三大步骤完成:

(1)产生正弦波波形信号;

(2)频率的控制;

(3)显示频率值。

利用VHDL编程,依据基本数字电路模块原理进行整合。

系统各部分所需工作时钟信号由输入系统时钟信号经分频得到,系统时钟输入端应满足输入脉冲信号的要求。频率控制模块可以实现频率的连续可调,最终送至脉冲发生模块输出脉冲信号,同时将信号的频率输出至数码管显示当前信号的频率值,达到设计所要求的输出波形频率可调功能。

如图1-2所示:

图1-2

第二章主要工具及其应用

EDA

电子设计技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。

VHDL

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。

DAC0832

DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A 转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

第三章系统设计与实现

3.1倍频器模块

由于要求简易正弦波信号发生器输出频率达到1MHZ,所以实验箱上的20MHZ的输出过低,无法达到要求。此时可以采用一个倍频器将20MHZ的频率输出加倍成为128MHZ的频率输出。具体通过Quartus II 9.0软件所做的模块原理图如图3-1所示:

图3-1 倍频器模块原理图

3.2主程序模块

主程序用来实现系统的主要功能,包括波形定义分频、频段选择、频率调节以及频率输出等。主程序见附录1。主程序原理图如图3-2所示:

图3-2主程序模块原理图

其中clk信号为20MHZ的信号经过加倍后的128MHZ的频率。Key1、key2为频率调节按钮,key1接按键,当按动key1频率值加1或者减1;key2接拨码开关,用来加减选择,当key2=1时为加,当key2=0时为减。sel_p[1..0]为频段选择信号,当sel_p[1..0]=00、01、10时,其频段分别为0HZ-1KHZ、1KHZ-10KHZ、10KHZ-1MHZ。

正弦信号发生器的设计

XXXX大学现代科技学院DSP硬件电路设计基础课程设计 设计名称正弦信号发生器的设计 专业班级 学号 姓名DENG 指导教师XXXX

课程设计任务书 注: 上交(大张图纸不必装订) 2.可根据实际内容需要续表,但应保持原格式不变。 日期:2014-12-10

专业班级 XXXXXXX 学号 姓名 DENG 成绩 设计题目 正弦波信号发生器 设计目的 学会使用CCS(Code Composer Studio)集成开发环境软件,在此集成开发环境下完成工程项目创建,程序编写,编译,链接,调试以及数据的分析。同时完成一个正弦波信号发生器的程序的编写,并在集成开发环境下进行模拟运行,观察结果。 设计内容 编写一个产生正弦波信号的程序,在CCS 软件下进行模拟运行,观察输出结果。 设计原理 正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。本次课程设计只要使用泰勒级数展开法来实现正弦波信号。 1. 产生正弦波的算法 在高等数学中,正弦函数和余弦函数可以展开成泰勒级数,其表达式为 若要计算一个角度x 的正弦和余弦值,可取泰勒级数的前5项进行近似计算。 ……………………………………装………………………………………订…………………………………………线………………………………………

由上述两个式子可以推导出递推公式,即 sin(nx)=2cos(x)sin[(n-1)x]-sin[(n-2)x] cos(nx)=2cos(x)sin[(n-1)x]-cos[(n-2)x] 由递推公式可以看出,在计算正弦和余弦值时,不仅需要已知cos(x),而且还需要sin[(n-1)x]、sin[(n-2)x]和cos[(n-2)x]。 2. 正弦波的实现 ⑴计算一个角度的正弦值 利用泰勒级数的展开式,可计算一个角度x的正弦值,并采用子程序的调用方式。在调用前先在数据存储器d_xs单元中存放x的弧度值,计算结果存放在d_sinx单元中。 ⑵计算一个角度的余弦值 利用余弦函数展开的泰勒级数的前五项计算一个角度的余弦值,可采用子程序的调用方式来实现。调用前先将x弧度值放在数据存储器d_xc单元中,计算结果存放在d_cosx单元中。 ⑶正弦波的实现 利用计算一个角度的正弦值和余弦值程序可实现正弦波。其实现步骤如下:第一步:利用sin_start和cos_start 子程序,计算 45°~0°(间隔为 0.5°)的正弦和余弦值; 第二步:利用sin(2x)=2sin(x)cos(x)公式,计算 90°~0°的正弦值(间隔为1°);第三步:通过复制,获得359°~0°的正弦值; 第四步:将359°~0°的正弦值重复从PA口输出,便可得到正弦波。 在实际应用中,正弦波是通过D/A口输出的。选择每个正弦周期中的样点数、改变每个样点之间的延迟,就能够产生不同频率的波形,也可以利用软件改变波形的幅度以及起始相位。 总体方案设计 1. 总体实现方案 我们知道一个角度为x的正弦和余弦函数,都可以展开为泰勒级数,且其前五项可以看为:

方波-三角波-正弦波函数信号发生器

课程设计说明书 课程设计名称:电子课程设计 课程设计题目:设计制作一个产生方波-三角波-正弦波函数转换器学院名称:信息工程学院 专业:电子信息科学与技术班级: xxxxxxxx 学号: xxxxxxx 姓名: xxxxx 评分:教师: xxxxxx 20 13 年 10 月 15 日

电子课程设计 课程设计任务书 20 13 -20 14 学年 第 1 学期 第 1 周- 3 周 注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。 2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

摘要 当今世界在以电子信息技术为前提下推动了社会跨越式的进步,科学技术的飞速发展日新月异带动了各国生产力的大规模提高。由此可见科技已成为各国竞争的核心,尤其是电子通信方面更显得尤为重要,在国民生产各部门都得到了广泛的应用,而各种仪器在科技的作用性也非常重要,如信号发生器、单片机、集成电路等。 信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和 教学实验等领域。常用超低频信号发生器的输出只有几种固定的波形,有方波、 三角波、正弦波、锯齿波等,不能更改信号发生器作为一种常见的应用电子仪器 设备,传统的可以完全由硬件电路搭接而成,如采用LM324振荡电路发生正弦波、 三角波和方波的电路便是可取的路径之一,不用依靠单片机。 本系统本课题将介绍由LM324集成电路组成的方波——三角波——正弦波 函数信号发生器的设计方法,了解多功能函数信号发生器的功能及特点,进一步 掌握波形参数的测试方法,制作这种低频的函数信号发生器成本较低,适合学生 学习电子技术测量使用。制作时只需要个别的外部元件就能产生正弦波、三角波、 方波等脉冲信号。输出波形的频率和占空比还可以由电流或电阻控制。 关键字:信号发生器、波形转换、LM324

用FPGA实现的七段数码管vhdl代码

Output(7 downto 0)

具体设计: Vhd代码: library IEEE; use Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use sevenled_vhd is Port ( input : in STD_LOGIC_VECTOR (3 downto 0); led : out STD_LOGIC_VECTOR (7 downto 0)); end sevenled_vhd; architecture Behavioral of sevenled_vhd is begin led<= "" when input="0000" else -- 0 "" when input="0001" else -- 1 "" when input="0010" else -- 2 "" when input="0011" else -- 3 "" when input="0100" else -- 4 "" when input="0101" else -- 5 "" when input="0110" else -- 6 "" when input="0111" else -- 7 "" when input="1000" else -- 8 "" when input="1001" else -- 9 "" when input="1010" else -- A "" when input="1011" else -- b "" when input="1100" else -- c "" when input="1101" else -- d "" when input="1110" else -- E ""; -- F end Behavioral; 管脚约束: Net "led<7>" LOC=N19; Net "led<6>" LOC=N15; Net "led<5>" LOC=R20; Net "led<4>" LOC=R18; Net "led<3>" LOC=U20; Net "led<2>" LOC=T18;

信号发生器的基本参数和使用方法

信号发生器 本人介绍一下信号发生器的使用和操作步骤. 1、信号发生器参数性能 频率范围:0.2Hz ~2MHz 粗调、微调旋钮 正弦波, 三角波, 方波, TTL 脉波 0.5" 大型 LED 显示器 可调 DC offset 电位 输出过载保护 信号发生器/信号源的技术指标: 波形正弦波, 三角波, 方波, Ramp 与脉波输出 振幅>20Vp-p (open circuit); >10Vp-p (加 50Ω负载) 阻抗50Ω+10% 衰减器-20dB+1.0dB (at 1kHz) DC 飘移<-10V ~ >+10V, (<-5V ~ >+5V 加 50Ω负载) 周期控制 1 : 1 to 10 : 1 continuously rating 显示幕4位LED显示幕 频率范围0.2Hz to2MHz(共 7 档) 频率控制Separate coarse and fine tuning 失真< 1% 0.2Hz ~ 20kHz , < 2% 20kHz ~ 200kHz 频率响应< 0.2dB 0.2Hz ~100kHz; < 1dB100kHz~2MHz 线性98% 0.2Hz ~100kHz; 95%100kHz~2MHz

对称性<2% 0.2Hz ~100kHz 上升/下降时间<120nS 位准4Vp-p±1Vp-p ~ 14.5Vp-p±0.5Vp-p 可调 上升/下降时间<120nS 位准>3Vpp 上升/下降时间<30nS 输入电压约 0V~10V ±1V input for 10 : 1 frequency ratio 输入阻抗10kΩ (±10%) 交流 100V/120V/220V/230V ±10%, 50/60Hz 电源线× 1, 操作手册× 1, 测试线 GTL-101 × 1 230(宽) × 95(高) × 280(长) mm,约 2.1 公斤 信号发生器是为进行电子测量提供满足一定技术要求电信号的仪器设备。这种仪器是多用途测量仪器,它除了能够输出正弦波、矩形波尖脉冲、TTL电平、单次脉冲等五种波形,还可以作频率计使用,测量外输入信号的频率 1.信号发生器面板: (1)电源开关; (2)信号输出端子; (3)输出信号波形选择;

正弦信号发生器2

正弦信号发生器[2005年电子大赛一等奖] 文章来源:凌阳科技教育推广中心 作者:华中科技大学(华中科技大学曹震陈国英孟芳宇)发布时间:2006-4-21 17:33:13 本系统基于直接数字频率合成技术;以凌阳SPCE061A单片机为控制核心;采用宽带运放AD811和AGC技术使得50Ω负载上峰值达到6V±1V;由模拟乘法器AD835产生调幅信号;由数控电位器程控调制度;通过单片机改变频率字实现调频信号,最大频偏可控;通过模拟开关产生ASK、PSK信号。系统的频率范围在100Hz~12MHz,稳定度优于10-5,最小步进为10Hz。 一、方案论证 根据题目要求和本系统的设计思想,系统主要包括图1.1所示的模块。 图1.1 系统模块框图

1、单片机选型 方案一:采用现在比较通用的51系列单片机。51系列单片机的发展已经有比较长的时间,应用比较广泛,各种技术都比较成熟,但此系列单片机是8位机,处理速度不是很快,资源不够充足,而且其最小系统的外围电路都要自己设计和制作,使用起来不是很方便,故不采用。 方案二:选用凌阳公司的SPCE061A单片机。SPCE061A单片机是16位的处理器,主频可以达到49MHz,速度很快,再加上其方便的ADC接口,非常适合对高频信号进行数字调频,如果对音频信号进行A/D采样,经过数字调频并发射,完全可以达到调频广播的效果。 结合题目的要求及SPCE061A单片机的特点,本系统选用凌阳公司的此款单片机。 2、频率合成模块 方案一:锁相环频率合成。如图1.2,锁相环主要由压控LC振荡器,环路滤波器,鉴相器,可编程分频器,晶振构成。且频率稳定度与晶振的稳定度相同,达10-5,集成度高,稳定性好;但是锁相环锁定频率较慢,且有稳态相位误差,故不采用。 图1.2 锁相环的基本原理 方案二: 直接数字频率合成。直接数字频率合成DDFS(Direct Digital Frequency Synthesizer)基于Nyquist定理,将模拟信号采集,量化后存入存储器中,通过寻址查表输出波形数据,再经D/A转

电子秤VHDL代码

-- 输入电压范围0-5V,显示0-255数位 --------------------库定义、包定义-------------------- LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; --------------------实体定义-------------------- ENTITY balance IS port ( clk : IN STD_LOGIC; -- 全局时钟输入,12Mhz晶振产生 reset : IN STD_LOGIC; -- 复位输入 intr : IN STD_LOGIC; -- AD转换结束产生的中断输入 data_i : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -- ADC转换后的数据输入 data_o : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -- 数码管数据输出 l : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -- 输出数码管位选 cs : OUT STD_LOGIC; -- ADC使能 wr : OUT STD_LOGIC; -- ADC写控制 rd : OUT STD_LOGIC -- ADC读控制 ); END balance; --------------------结构体-------------------- ARCHITECTURE bhv OF balance IS TYPE state IS (start, convert, read1, read2);-- 状态机定义 SIGNAL current_state, next_state : state; -- 状态定义 SIGNAL read_data : STD_LOGIC;-- 读数据寄存器 SIGNAL clock : STD_LOGIC;-- 扫描时钟 SIGNAL p : INTEGER RANGE 0 TO 255;-- 数据寄存器 SIGNAL b0,b1,b2 : INTEGER RANGE 0 TO 9;-- 3位数码管显示数据寄存器 SIGNAL cnt : INTEGER RANGE 0 TO 3 := 0;-- 扫描寄存器 BEGIN --------------------显示进程-------------------- PROCESS(p, clk) BEGIN CASE p IS WHEN 0|10|20|30|40|50|60|70|80|90|100|110|120|130|140|150|160|170|180|190|200|210|220|230|240|250 => b0 <= 0; WHEN 1|11|21|31|41|51|61|71|81|91|101|111|121|131|141|151|161|171|181|191|201|211|221|231|241|251 => b0 <= 1; WHEN 2|12|22|32|42|52|62|72|82|92|102|112|122|132|142|152|162|172|182|192|202|212|222|232|242|252 => b0 <= 2; WHEN 3|13|23|33|43|53|63|73|83|93|103|113|123|133|143|153|163|173|183|193|203|213|223|233|243|253 => b0 <= 3; WHEN 4|14|24|34|44|54|64|74|84|94|104|114|124|134|144|154|164|174|184|194|204|214|224|234|244|254 => b0 <= 4; WHEN 5|15|25|35|45|55|65|75|85|95|105|115|125|135|145|155|165|175|185|195|205|215|225|235|245|255 => b0 <= 5; WHEN 6|16|26|36|46|56|66|76|86|96|106|116|126|136|146|156|166|176|186|196|206|216|226|236|246 => b0 <= 6; WHEN 7|17|27|37|47|57|67|77|87|97|107|117|127|137|147|157|167|177|187|197|207|217|227|237|247 => b0 <= 7; WHEN 8|18|28|38|48|58|68|78|88|98|108|118|128|138|148|158|168|178|188|198|208|218|228|238|248 => b0 <= 8; WHEN 9|19|29|39|49|59|69|79|89|99|109|119|129|139|149|159|169|179|189|199|209|219|229|239|249 => b0 <= 9; WHEN OTHERS => NULL; END CASE; CASE p IS WHEN 0|1|2|3|4|5|6|7|8|9|100|101|102|103|104|105|106|107|108|109|200|201|202|203|204|205|206|207|208|209 => b1 <= 0; WHEN 10|11|12|13|14|15|16|17|18|19|110|111|112|113|114|115|116|117|118|119|210|211|212|213|214|215|216|217|218|219 => b1 <= 1; WHEN 20|21|22|23|24|25|26|27|28|29|120|121|122|123|124|125|126|127|128|129|220|221|222|223|224|225|226|227|228|229 => b1 <= 2; WHEN 30|31|32|33|34|35|36|37|38|39|130|131|132|133|134|135|136|137|138|139|230|231|232|233|234|235|236|237|238|239 => b1 <= 3; WHEN 40|41|42|43|44|45|46|47|48|49|140|141|142|143|144|145|146|147|148|149|240|241|242|243|244|245|246|247|248|249 => b1 <= 4; WHEN 50|51|52|53|54|55|56|57|58|59|150|151|152|153|154|155|156|157|158|159|250|251|252|253|254|255 => b1 <= 5; WHEN 60|61|62|63|64|65|66|67|68|69|160|161|162|163|164|165|166|167|168|169 => b1 <= 6; WHEN 70|71|72|73|74|75|76|77|78|79|170|171|172|173|174|175|176|177|178|179 => b1 <= 7; WHEN 80|81|82|83|84|85|86|87|88|89|180|181|182|183|184|185|186|187|188|189 => b1 <= 8; WHEN 90|91|92|93|94|95|96|97|98|99|190|191|192|193|194|195|196|197|198|199 => b1 <= 9; WHEN OTHERS => NULL; END CASE; IF (p < 100) THEN b2 <= 0; ELSIF (p >= 100 and p < 200) THEN b2 <= 1; ELSIF (p >= 200) THEN b2 <= 2; END IF; END PROCESS; --------------------分频进程-------------------- PROCESS(clk) VARIABLE cnt1 : INTEGER RANGE 0 TO 100; VARIABLE cnt2 : INTEGER RANGE 0 TO 20; BEGIN IF (clk'EVENT AND clk = '1') THEN IF (cnt1 = 100) THEN cnt1 := 0; IF (cnt2 = 20) THEN cnt2 := 0; clock <= NOT clock; IF (cnt = 3) THEN cnt <= 0; ELSE cnt <= cnt + 1; END IF; ELSE cnt2 := cnt2 + 1; END IF; ELSE cnt1 := cnt1 + 1; END IF; END IF;

EDA-常见实例源程序代码vhdl

第4章用VHDL程序实现常用逻辑电路4.1 组合逻辑电路设计 4.1.1 基本逻辑门 library ieee; use iee.std_logic_1164.all; entity jbm is port(a,b: in bit; f1,f2,f3,f4,f5,f: out bit); end jbm; architecture a of jbm is begin f1<=a and b; --构成与门 f2<=a or b; --构成或门 f<=not a; --构成非门 f3<=a nand b; --构成与非门 f4<=a nor b; --构成异或门 f5<=not(a xor b); --构成异或非门即同门 end; 4.1.2 三态门 library ieee; use ieee.std_logic_1164.all; entity tri_s is port(enable: in std_logic; datain: in std_logic_vector(7 downto 0); dataout: out std_logic_vector(7 downto0)); end tri_s; architecture bhv of tri_s is begin process(enable,datain) begin if enable='1' then dataout<=datain; else dataout<="ZZZZZZZZ"; end if; end process; end bhv; 4.1.3 3-8译码器 library ieee; use ieee.std_logic_1164.all; entity decoder3_8 is port(a,b,c,g1,g2a,g2b: in std_logic; y: out std_logic_vector(7 downto 0)); end decoder3_8; architecture a of decoder3_8 is signal dz:std_logic_vector(2 downto 0); begin dz<=c&b&a; process (dz,g1,g2a,g2b) begin if(g1='1'and g2a='0'and g2b='0')then case dz is when "000"=> y<="11111110"; when "001"=> y<="11111101"; when "010"=> y<="11111011"; when "011"=> y<="11110111"; when "100"=> y<="11101111"; when "101"=> y<="11011111"; when "110"=> y<="10111111"; when "111"=> y<="01111111"; when others=>y<="XXXXXXXX"; end case; else y<="11111111"; end if; end process; 4.1.4 优先编码器

正弦信号发生器(参考2)

正弦信号发生器 作者:曾立丁运鸿陈亮 赛前辅导及文稿整理辅导教师:肖看 摘要 本系统以51单片机及FPGA为控制核心,由正弦信号发生模块、功率放大模块、调幅(AM)、调频(FM)模块、数字键控(ASK,PSK)模块以及测试信号发生模块组成。采用数控的方法控制DDS芯片AD9851产生5Hz-20MHz正弦信号,经滤波、放大和功放模块放大至6v并具有一定的驱动能力。测试信号发生模块产生的1kHz正弦信号经过调幅(AM)模块、调频(FM)模块,对高频载波进行调幅或调频。二进制基带序列信号送入数字键控模块,产生二进制PSK或ASK 信号,同时对ASK信号进行解调,恢复出原始数字序列。另外,本系统还配备有液晶显示屏、遥控键盘,提供了友好的人机交互界面。 ABSTRACT This system is in the core of Micro-Processor and FPGA (Field Programmable Gate Array), consist of sine signal generating module, Power amplifier, Amplitude Modulator, Frequency Modulator, ASK/PSK module and test signal generating module. The AD9851 controlled by Micro-Process in digital way to generate sine signal with the bandwidth 5Hz to 20MHz adjustable per 1Hz. After processing by LPF & power amplifier, the output signal has a peak value of move than 6V. The sine signal at 1 KHz was send to AM and FM module to modulate the high frequency carrier waveform. The binary sequential was send to the relative module to generate ASK and PSK signal. At last demodulate module demodulate the ASK signal and got the same binary sequential as set before. In order to provide a friendly user interface, the LCD and remote infrared control keyboard was introduced in this system.

EDA课程设计-正弦信号发生器的设计

《EDA技术》设计报告 设计题目正弦信号发生器的设计 院系:信息工程学院 专业:通信工程____ 学号: 姓名:__________

一.设计任务及要求 1.设计任务: 利用实验箱上的D/A 转换器和示波器设计正弦波发生器,可以在示波器上观察到正弦波 2.设计要求: (1) 用VHDL 编写正弦波扫描驱动电路 (2)设计可以产生正弦波信号的电路 (3)连接实验箱上的D/A 转换器和示波器,观察正弦波波形 二.设计方案 (1)设计能存储数据的ROM 模块,将正弦波的正弦信号数据存储在在ROM 中,通过地址发生器读取,将正弦波信号输入八位D/A 转化器,在示波器上观察波形 (2)用VHDL 编写正弦波信号数据,将正弦波信号输入八位D/A 转化器,在示波器上观察波形 三.设计框图 图 1 设计框图 信号发生器主要由以下几个部分构成:计数器用于对数据进行采样,ROM 用于存储待采样的波形幅度数值,TLV5620用于将采集的到正弦波数字量变为模拟量,最后通过示波器进行测量获得的波形。其中,ROM 设置为7根地址线,8个数据位,8位并行输出。TLV5260为串行输入的D/A 转换芯片,因此要把ROM 中并行输出的数据进行并转串。 四.实现步骤 1.定制ROM 计 数 器 7根地址线 8 位 R O M 并转串输出 CLK TLV5620D/A 转换 RST

ROM的数据位选择为8位,数据数选择128个。利用megawizard plug-in manager定制正弦信号数据ROM宏功能块,并将上面的波形数据加载于此ROM中。如图3所示。 图2 ROM存储的数据 图3 调入ROM初始化数据文件并选择在系统读写功能 2.设计顶层

正弦波函数信号发生器

电子技术课程设计报告 电子技术课程设计报告——正弦波函数信号发生器的设计 作品40% 报告 20% 答辩 20% 平时 20% 总分 100% 设计题目:班级:班级学号:学生姓名:

目录 一、预备知识 (1) 二、课程设计题目:正弦波函数信号发生器 (2) 三、课程设计目的及基本要求 (2) 四、设计内容提要及说明 (3) 4.1设计内容 (3) 4.2设计说明 (3) 五、原理图及原理 (8) 5.1功能模块电路原理图 (9) 5.2模块工作原理说明 (10) 六、课程设计中涉及的实验仪器和工具 (12) 七、课程设计心得体会 (12) 八、参考文献 (12)

一、预备知识 函数发生器是一种在科研和生产中经常用到的基本波形生产期,现在多功能的信号发生器已经被制作成专用的集成电路,在国内生产的8038单片函数波形发生器,可以产生高精度的正弦波、方波、矩形波、锯齿波等多种信号波,这中产品和国外的lcl8038功能相同。产品的各种信号频率可以通过调节外接电阻和电容的参数进行调节,快速而准确地实现函数信号发生器提供了极大的方便。发生器是可用于测试或检修各种电子仪器设备中的低频放大器的频率特性、增益、通频带,也可用作高频信号发生器的外调制信号源。顾名思义肯定可以产生函数信号源,如一定频率的正弦波,有的可以电压输出也有的可以功率输出。下面我们用简单的例子,来说明函数信号发生器原理。 (a) 信号发生器系统主要由下面几个部分组成:主振级、主振输出调节电位器、电压放大器、输出衰减器、功率放大器、阻抗变换器(输出变压器)和指示电压表。 (b) 工作模式:当输入端输入小信号正弦波时,该信号分两路传输,其一路径回路,完成整流倍压功能,提供工作电源;另一路径电容耦合,进入一个反相器的输入端,完成信号放大功能。该放大信号经后级的门电路处理,变换成方波后经输出。输出端为可调电阻。 (c) 工作流程:首先主振级产生低频正弦振荡信号,信号则需要经过电压放大器放大,放大的倍数必须达到电压输出幅度的要求,最后通过输出衰减器来直接输出信号器实际可以输出的电压,输出电压的大小则可以用主振输出调节电位器来进行具体的调节。 它一般由一片单片机进行管理,主要是为了实现下面的几种功能: (a) 控制函数发生器产生的频率; (b) 控制输出信号的波形; (c) 测量输出的频率或测量外部输入的频率并显示; (d) 测量输出信号的幅度并显示; (e) 控制输出单次脉冲。 查找其他资料知:在正弦波发生器中比较器与积分器组成正反馈闭环电路,方波、三角波同时输出。电位器与要事先调整到设定值,否则电路可能会不起振。只要接线正确,接通电源后便可输出方波、三角波。微调Rp1,使三角波的输出幅度满足设计要求,调节Rp2,则输出频率在对应波段内连续可变。 调整电位器及电阻,可以使传输特性曲线对称。调节电位器使三角波的输出幅度经R输出等于U值,这时输出波形应接近正弦波,调节电位器的大小可改善波形。 因为运放输出级由PNP型与NPN型两种晶体管组成复合互补对称电路,输

vhdl各种实验程序代码

1.三与门 library ieee; use ieee.std_logic_1164.all; entity yumen is port(a,b,c : in std_logic; f : out std_logic); end yumen; architecture and3_1 of yumen is begin f<=a and b and c; end architecture and3_1; 2.三八译码器 library ieee; use ieee.std_logic_1164.all; entity jg is port(a,b,c,g1,g2a,g2b:in std_logic; y:out std_logic_vector(7 downto 0)); end entity jg; architecture rt1 of jg is signal indata:std_logic_vector(2 downto 0); begin indata<=c&b&a; process(indata,g1,g2a,g2b)is begin if(g1='1' and g2a='0' and g2b='0')then case indata is when"000"=>y<="11111110"; when"001"=>y<="11111101"; when"010"=>y<="11111011"; when"011"=>y<="11110111"; when"100"=>y<="11101111"; when"101"=>y<="11011111"; when"110"=>y<="10111111"; when"111"=>y<="01111111"; when others=>y<="xxxxxxxx"; end case; else y<="11111111"; end if; end process; end rt1; 3.同步复位/置位、下降沿触发的d触发器ibrary ieee; use ieee.std_logic_1164.all; entity adff is port(clk,d,r,s:in std_logic; q:out std_logic); end adff; architecture rtl of adff is signal q_temp,qb_temp:std_logic; begin process(clk,r,s) begin if(clk'event and clk='0')then if(r='0' and s='1')then q_temp<='1'; if(r='1' and s='0')then q_temp<='0'; else q_temp<=d; end if; end if; end if; end process; q<=q_temp; end rtl; 4.异步复位/置位、上升沿触发的d发器ibrary ieee; use ieee.std_logic_1164.all; entity adff is port(clk,d,r,s:in std_logic; q:out std_logic); end adff; architecture rtl of adff is signal q_temp,qb_temp:std_logic; begin process(clk,r,s) begin if(r='0' and s='1')then q_temp<='1'; elsif(r='1' and s='0')then q_temp<='0'; elsif(clk'event and clk='1')then q_temp<=d; end if; end process; q<=q_temp; end rtl;

VHDL代码书写规范

VHDL代码书写规范 (定稿) 文件编号: 编制: 审核: 可靠性审核: 标准化: 批准:

文件会签页 文件历史记录 文件编号 现行版本V1.0 文件标题VHDL代码书写规范 文件履历 版次编制日期更改内容(条款) V1.0 V1.0

目录 1.目的 (1) 2.范围 (1) 3.术语说明 (1) 4.书写规范 (1) 4.1命名规范 (1) R1.一个文件只包含一个模块,文件命名和实体命名必须相同。文件名大写,其后缀小写。 (1) R2.顶层文件命名方式使用工程名、器件型号与_TOP结合。顶层文件的元件实例化,后缀使用_module;第二层文件的元件实例化,后缀使用_block;第三层之后不做定义(若遇到常见的基本逻辑电路或子模块,如:SRAM、FIFO等,那么优先使用具有代表性的名称) (1) R3.代码编写之前,以文档的方式,根据功能分类,分别对FPGA的外部端口进行命名约定。 (2) R4.命名要有实际意义。 (2) R5.命名标识符的首字符必须是字母,包含多个单词的标志符单词之间使用下划线分开。信号、变量等的命名最后字符也一定要求是字母,中间的可以是数字或者其他合法符号。 (2) R6.模块、信号、变量等的命名不大于64个字符 (2) R7.实体、结构名、端口信号、常量用大写标识 (2) R8.行为级、结构级和数据流级结构命名分别以“BEH_实体名”、“STR_实体名”和“RTL_实体名”区分。 如果是混合使用,或者是分不清使用了那一种结构,那么就是用“ARC_实体名”命名。 (3) R9.单口RAM模块命名以SPRAM作后缀;双口RAM模块命名以DPRAM作后缀;ROM模块命名以ROM作后缀; FIFO模块命名以FIFO_作后缀;数字时钟管理模块命名以DCM作后缀;锁相环模块命名以PLL作后缀;乘法模块命名以MULT作后缀;除法模块命名以DIV作后缀;加法模块命名以ADD作后缀;减法模块命名以SUB作后缀。 (3) R10.模块实例化时,采用‘Un_xx_元件名’标识,cell实例化时使用‘Mn_xx_元件名’标识。 (3) R11.模块内部定义的信号、变量采用首字母大写命名。首字母符合说明的要求。 (3) R12.非顶层模块端口信号命名方式采用I_portname、O_portname和IO_portname分别对应输入、输出和双向端口信号。 (3) R13.时钟信号必须用后缀“_clk”进行命名。 (3) R14.对于微处理器接口的寄存器,必须包含reg标志。用下划线分开该寄存器功能特征。 (4) R15.对于输入管脚时钟采样同步的信号命名要求后缀加“_buf”表示。多次采样加数字区分。 (4) R16.一些常用的基本信号按说明统一后缀命名。 (4) R17.多比特信号,应该使用相同的比特顺序,都采用downto描述。 (5) R18.VHDL的保留字用小写。 (5) R19.调用IEEE 标准库时,“IEEE”用大写,其它用小写。 (5) 4.2注释规范 (5) R20.每个VHDL源文件应该在文件头注释文件的基本信息。 (5) R21.每个信号、变量、常量和端口的定义都要有注释。 (5) R22.每个进程使用“--------”隔开。如果一个功能模块由几个进程组成,使用”--*****”隔开。 (5) R23.对于内部表,注释说明表的组成、表的内容及作用。 (6) 4.3其它书写规范 (6) R24.用缩进方式使得代码有层次感,缩进不要使用TAB键,缩进为4个空格。 (6) R25.每行字符数,最大不能超过120。 (6)

正弦波信号发生器设计(课设)

课程设计I(论文)说明书 (正弦波信号发生器设计) 2010年1月19日

摘要 正弦波是通过信号发生器,产生正弦信号得到的波形,方波是通过对原信号进行整形得到的波形。 本文主要介绍了基于op07和555芯片的正弦波-方波函数发生器。以op07和555定时器构成正弦波和方波的发生系统。Op07放大器可以用于设计正弦信号,而正弦波可以通过555定时器构成的斯密特触发器整形后产生方波信号。正弦波方波可以通过示波器检验所产生的信号。测量其波形的幅度和频率观察是否达到要求,观察波形是否失真。 关键词:正弦波方波 op07 555定时器

目录 引言 (2) 1 发生器系统设计 (2) 1.1系统设计目标 (2) 1.2 总体设计 (2) 1.3具体参数设计 (4) 2 发生器系统的仿真论证 (4) 3 系统硬件的制作 (4) 4 系统调试 (5) 5 结论 (5) 参考文献 (6) 附录 (7) 1

引言 正弦波和方波是在教学中经常遇到的两种波形。本文简单介绍正弦波和方波产生的一种方式。在这种方式中具体包含信号发生器的设计、系统的论证、硬件的制作,发生器系统的调制。 1、发生器系统的设计 1.1发生器系统的设计目标 设计正弦波和方波发生器,性能指标要求如下: 1)频率范围100Hz-1KHz ; 2)输出电压p p V ->1V ; 3)波形特性:非线性失真~γ<5%。 1.2总体设计 (1)正弦波设计:正弦波振荡电路由基本放大电路、反馈网络、选频网 络组成。

2 图1.1 正弦波振荡电路产生的条件是要满足振幅平衡和相位平衡,即AF=1; φa+φb=±2nπ;A=X。/Xid; F=Xf/X。;正弦波振荡电路必须有基本放大电路, 本设计以op07芯片作为其基本放大电路。 基本放大电路的输出和基本放大电路的负极连接电阻作为反馈网络。反馈网络中 两个反向二极管起到稳压的作用。振荡电路的振荡频率f0是由相位平衡条件决 定的。一个振荡电路只在一个频率下满足相位平衡条件,这要求AF环路中包含 一个具有选频特性的选频网络。f0=1/2πRC。要实现频率可调,在电容C不变的 情况下电阻R可调就可以实现频率f0的变化。 (2)方波设计:方波可以把正弦波通过斯密特触发器整形后产生。基于555定时器接成的斯密特触发器。 设斯密特触发器输出波形为V1,V2且V1>V2。 输入正弦波v1从0逐渐升高的过程:v1<1/3Vcc时,输出v0=V1; 当1/3Vcc2/3Vcc时,v0=V2; 输入正弦波v1从高于2/3Vcc开始下降的过程:当1/3Vcc

方波——三角波——正弦波函数信号发生器

1函数发生器的总方案及原理框图(1) 1.1电路设计原理框图(1) 1.2 电路设计方案设计(1) 2 设计的目的及任务(2) 2.1 课程设计的目的(2) 2.2课程设计的任务与要求(2) 2.3课程设计的技术指标(2) 3 各部分电路设计(3) 3.1方波发生电路的工作原理(3) 3.2方波---三角波转换电路的工作原理(3) 3.3三角波---正弦波转换电路的工作原理,,,,,,,(6) 3.4电路的参数选择及计算(8) 3.5 总电路图(10) 4 电路仿真(11) 4.1方波---三角波发生电路的仿真(11) 4.2三角波---正弦波转换电路的仿真(12) 5 电路的安装与调试(13) 5.1方波---三角波发生电路的安装与调试(13) 5.2三角波---正弦波转换电路的安装与调试,,,,,,,(13) 5.3总电路的安装与调试(13) 5.4电路安装与调试中遇到的问题及分析解决方法,,,,(13) 6 电路的实验结果(14) 6.1方波---三角波发生电路的实验结果(14) 6.2三角波---正弦波转换电路的实验结果(14) 6.3实测电路波形、误差分析及改进方法(15) ,,,,,,,,,,,,,,,,,,,,,,,, (17)7 实验总结 8 仪器仪表明细清单(18) 9 参考文献(19)

1. 函数发生器总方案及原理框图 1.1原理框图 1.2函数发生器的总方案 函数发生器一般是指能自动产生正弦波、三角波、方波及锯齿波、阶梯波等电压波形的电路或仪器。根据用途不同,有产生三种或多种波形的函数发生器,使用的器件可以是分立器件(如低频信号函数发生器S101全部采用晶体管), 也可以采用集成电路(如单片函数发生器模块8038)。为进一步掌握电路的基本理论及实验调试技术,本课题采用由集成运算放大器与晶体管差分放大器共同组成的方波一三角波一正弦波函数发生器的设计方法。 产生正弦波、方波、三角波的方案有多种,如首先产生正弦波,然后通过整 形电路将正弦波变换成方波,再由积分电路将方波变成三角波;也可以首先产生三角波一方波,再将三角波变成正弦波或将方波变成正弦波等等。本课题采用先产生方波一三角波,再将三角波变换成正弦波的电路设计方法, 本课题中函数发生器电路组成框图如下所示: 由比较器和积分器组成方波一三角波产生电路,比较器输出的方波经积分器 得到三角波,三角波到正弦波的变换电路主要由差分放大器来完成。差分放大器具有工作点稳定,输入阻抗高,抗干扰能力较强等优点。特别是作为直流放大器时,可以有效地抑制零点漂移,因此可将频率很低的三角波变换成正弦波。波形 变换的原理是利用差分放大器传输特性曲线的非线性。

相关文档
最新文档