用VHDL设计信号发生器

信号发生器要求:

信号发生器程序:

library ieee;
use ieee.std_logic_1164.all;
entity signal_gen1 is
port(
clk:in bit;
wave:out bit
);
end signal_gen1;
architecture bhv of signal_gen1 is
begin
process
variable count: integer range 0 to 7;
begin
wait until clk‘event and clk=‘1‘;
case count is
when 0 => wave <=‘0‘;
when 1 => wave <=‘1‘;
when 2 => wave <=‘0‘;
when 3 => wave <=‘1‘;
when 4 => wave <=‘1‘;
when 5 => wave <=‘1‘;
when 6 => wave <=‘0‘;
when 7 => wave <=‘0‘;
end case;
count := count+1;
end process;
end bhv;

RTL原图:

仿真图:

原文地址:https://www.cnblogs.com/lhkhhk/p/11966788.html

时间: 2024-10-10 09:42:10

用VHDL设计信号发生器的相关文章

采用DDS(数字频率合成法)设计信号发生器

§2.1设计指导思想 用大规模CPLD设计多功能信号发生器,要求能够输出方波.锯齿波.三角波.正弦波. 具体是用VHDL硬件描述语言编写多功能信号发生器程序,经过编译.仿真,再下载到CPLD器件上,再经数模转换器输出各类波形. 1.CPLD(COMPLEX Programmable Logic Device,复杂可编程逻辑器件)属于最具有代表性的IC芯片之一.CPLD基本上是由多个SPLD(SIMPLE PLD)在单片上的集成,集成度高,可以实现比较复杂的电路或系统.CPLD的优点是其结构的规则

用VHDL设计正弦信号发生器

正弦信号发生器的结构由3部分组成: 1.计数器或地址信号发生器,要根据ROM大小来确定地址发生器宽度.(其实验选择6位地址信号发生器给ROM) 2.正弦信号数据存储ROM(地址宽度6位,数据宽度8位),包含64个字的完整正弦波数据(1个完整周期) 3.8位D/A模块(采用TLC5602超高频数模转换器),实现数模转换,输出模拟正弦波信号. 结构图 在正弦信号发生器结构图中,地址信号发生器的时钟信号有clk提供,假设其频率为f0,正弦波数据ROM中存放每周期64个字节的波形数据,则8位 D/A转换

采用DDS设计信号发生器

直接数字频率合成是一种新型的频率合成技术,它把信号发生器的频率稳定度.准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节.在现代通信领域中,DDS 的应用极其广泛.在微机内,插入一块D/A转换器,然后编制一小段程序,如连续进行加1运算到一定值,然后连续进行减1运算回到原值,再反复运算该程序,则微机输出的数字量经过D/A转换成小阶梯式模拟量波形.在经过低通滤波器滤除引起出1一段时间,再输出0一段时间,反复运行这段程序,则会得到波形. 相位累加器在每一个时钟上升沿与频率控

采用DDS设计信号发生器,完成设计方案

基于DDS函数信号发生器设计方案 一.基于DDS信号发生器的系统设计方案的提出 1.采用高性能的DDS单片电路解决方案 随着DDS技术和VLSI的不断发展,DDS式频率合成器单片化在九十年代就已经完成.由于DDS芯片性能日趋完善,需求量激增,其中AD公司的DDS系列产品以其较高的性价比,目前取得了极为广泛的应用. 2.自行设计基于FPGA芯片的解决方案 DDS技术的实现依赖于高速.高性能的数字器件.可编程逻辑器件以其速度高.规模大.可编程,以及有强大的EDA软件支持等特性,十分适合实现DDS系统

VHDL设计----十进制计数器

一.异步复位加法计数器 代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity CNT10 is port( CLK,RST,EN: in std_logic; DOUT : out std_logic_vector (3 downto 0); COUT : OUT std_logic ); end CNT10; architecture behav of CNT10 is be

dds设计信号发生器

高一 150206101 Dds数字信号发生器设计方案 DDS的工作原理框图如下 在微机内,若插入一块D/A转换卡,然后编制一段小程序,如连续进行加一运算到一定值,然后连续进行减一 运算回到原值,在反复运行该程序,则微机输出的数字量经过d/a转换为小阶梯式模拟量. 在正弦波中,将其一个周期以相位划分为60个等分,每个等分为6度,在ROM中只需存储0度到90度的16个等分,因为正弦波对180度为奇对称对90度和270度为偶对称. 在clk的作用下,按照0000,0001,0010,0011,010

VHDL设计时参数定义的方法 例子

-- SPtb LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; use std.textio.all; use ieee.std_logic_textio.all;   -- Uncomment the following library declaration if using -- arithmetic functions wit

VHDL学习之TEXTIO在仿真中的应用

TEXTIO 在VHDL 仿真与磁盘文件之间架起了桥梁,使用文本文件扩展VHDL 的仿真功能.本文介绍TEXTIO 程序包,以一个加法器实例说明TEXTIO 的使用方法,最后使用ModelSim 对设计进行仿真,并分析仿真结果.在对VHDL 源程序进行仿真时, 由于有的输入输出关系仅仅靠输入波形或编写testbench 中的信号输入是难以验证结果正确性的,例如, 设计8 位加法器,如果将所有的输入都验证一遍, 是非常麻烦的,因为要全面判断输出是否正确需要一个个的验证.此外,若用VHDL 设计一个

VHDL介绍

VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述. 制定了ieee.1164库. 使用VHDL语言描述的电路,可以进行综合和仿真. VHDL代码3个基本组成部分:库(library)声明.实体(entity)和构造体(architecture). 库(library)声明:列出了当前设计中需要用到的所有文件,如ieee,std,work等. 实体(entity):定义了电路的输入和输出引脚. 构造体(architecture):所包含的代码描述了电路要实验的功能. 1.库声明 库