基于fpga的直接数字频率合成器的设计本科毕业设计(编辑修改稿)内容摘要:
块的设计与实现。 河南理工大学毕业设计(论文)说明书 15 3 模块设计与实现 如前面所述,顶层实体由 3个模块构成: 微控制器接口模块、相位累加器模块及双端口 RAM 模块。 由 8个比例乘法器级联组成的分频器模块以端口定义的形式例化在微控制器模块中,属于后者的子模块,但是由于比例乘法器的本设计中所发挥的作用很大,加之相关资料少之又少,为了加深读者的领悟,决定单独作为一节。 微控制器接口模块 微控制器接口 向 8 位、 16 位、 32 位微处理器级微控制器提供友好的操作接口,如图 31所示。 其输入引脚前面已经介绍过,这里不再重复。 现在,介绍一下输出引脚。 图 31 ddsen:相位累加器使能,有效时为高电平; fclk:分 频时钟,作为相位累加器的输入时钟; m:相位累加步长, m=2n , n=0,1,2, „, 7; dataout:数据输出,作为 RAM 输入数据; addrout:地址输出,作为 RAM 输入地址; wern: RAM 写使能信号; wrclock: RAM写时钟信号。 前面已经提到, DDS 内部实现了 6个寄存器,其中, 4个位分频寄存器,河南理工大学毕业设计(论文)说明书 16 1 个位控制寄存器, 1个位数据输入寄存器,这些寄存器的地址在表 31中。 表 31 寄存器地址 名称 访问属性 地址 FWORD1 Write 000 FWORD2 Write 001 FWORD3 Write 010 FWORD4 Write 011 DDSCR Write 100 DATA Write 101 分频寄存器 ( FWORD1FWORD4) 以 FWORD1 为例,如表 32所示。 分频寄存器用于存储分频系数,分频模块由 8 个 BCD 比例乘法器构成。 每一个比例乘法器需要 4 位二进制码来确定分频系数, 4 8=32 bit,也就是 4 byte。 FWORD1 对应第一级和第二级比例乘法器, FWORD2对应第三级和第四级比例乘法器,以此类 推, FWORD4 对应第七级和第八级比例乘法器。 表 32 分频寄存器 FWORD1 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 3BCD1 2BCD1 1BCD1 0BCD1 3BCD2 2BCD2 1BCD2 0BCD2 控制寄存器( DDSCR) 如表 33 所示,控制寄存器只有 4 位是有意义的, ddsen 为相位累加器使能,当其为有效时(逻辑 1),相位累加器工作,输出波形。 m m m0 是相位累加步长控制字,由于系统设计中规定相位累加步长 m=2n , n=0,1,2, „, 7,所以使用 3位表示他们足够了,对应的累加步长值如表 34所示。 表 33 控制寄存器 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 DDSEN 0 0 0 0 M2 M1 M0 河南理工大学毕业设计(论文)说明书 17 表 34 m2m1m0 与相位累加步长 m对照表 m2m1m0 m 000 1 001 2 010 4 011 8 100 16 101 32 110 64 111 128 数据输入寄存器( DATA) 如表 35 所示,微控制器通过数据输入寄存器缓冲,将数据写入双端口 RAM中。 复位时,地址为 0,每向 DATA 寄存器写一次数据,地址自动加 1,直到地址写满,自动清零,准备下一次 写入过程。 这意味着可以重复多次写波形数据,从而实现任意波形输出和动态波形输出的功能。 表 35 控制寄存器 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 本模块通过片选信号、地址选通信号、数据选通信号来锁定地址和数据,当片选 信号 CS和地址选通信号 AS有效时,根据地址总线内容使能对应寄存器。 在检测到数据选通信号 DS 下降沿后,在系统时钟的上升沿将数据写入选中的寄存器中。 微控 制器接口模块的状态机如图 32所示: (1) IDLE。 当系统上电或复位后,微控制器接口处于此状态。 此状态等待片选信号有效和 AS信号的下降沿,当条件满足时,状态机切换到 STROBE 状态。 (2) STROBE。 当片选信号有效时,状态机在此状态等待,直到 DS 信号出现下降时沿,切换到 DATA_LAUNCH 状态;当片选信号无效时,状态机切换到 IDLE状态。 河南理工大学毕业设计(论文)说明书 18 (3) DATA_LAUNCH。 此状态只持续 1个时钟周期,在时钟上升沿写入数据,返回 IDLE 状态。 图 32 微控制器接口状态机 文件 interface 内部的各进程说明: 第一个进程延迟信号,目的是检测信号跳变。 第二个进程是状态寄存器,同步状态。 第三个进程是主状态机。 第四个进程是写 RAM 状态机。 第五个进程根据地址译码,使能对应寄存器。 第六个进程根据使能,写对应寄存器。 描述微控制器接口模块的 VHDL 程序如下: LIBRARY IEEE。 USE。 USE。 USE。 ENTITY interface IS port( 与微控制器接口信号 全局复位 reset : IN STD_LOGIC。 全局时钟 河南理工大学毕业设计(论文)说明书 19 clk : IN STD_LOGIC。 地址总线 addrbus : IN STD_LOGIC_VECTOR(2 DOWNTO 0)。 数据总线 databus : IN STD_lOGIC_VECTOR(7 DOWNTO 0)。 片选 cs : IN STD_LOGIC。 地址选通 as : IN STD_LOGIC。 数据选通 ds : IN STD_LOGIC。 与内部模块接口信号 DDS 扫频使能 ddsen : OUT STD_LOGIC。 经比例乘法器分频后的时钟 fclk : OUT STD_LOGIC。 步长 m : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 数据输出,送至双端口 RAM dataout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 地址输出,送至双端口 RAM addrout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 双端口 RAM 写使能 wren: OUT STD_LOGIC。 双端口 RAM 写时钟 wrclock : OUT STD_LOGIC )。 END interface。 ARCHITECTURE rtl of interface IS 元件说明 8 个比例乘法器级联 河南理工大学毕业设计(论文)说明书 20 COMPONENT fre_div PORT( 输入时钟 FIN : IN STD_LOGIC。 分频系数 BCD1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD5 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD6 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD7 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 BCD8 : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 分频时钟 FOUT : OUT STD_LOGIC )。 END COMPONENT。 常数声明 CONSTANT RESET_ACTIVE : STD_LOGIC := 39。 039。 CONSTANT FWORD1_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 000。 CONSTANT FWORD2_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 001。 CONSTANT FWORD3_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 010。 CONSTANT FWORD4_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 011。 CONSTANT DDSCR_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 100。 CONSTANT DATA_ADDR : STD_LOGIC_VECTOR(2 downto 0) := 101。 信号声明 SIGNAL as_delay : STD_LOGIC。 SIGNAL ds_delay : STD_LOGIC。 SIGNAL bcd8 : STD_LOGIC_VECTOR(3 downto 0)。 SIGNAL bcd7 : STD_LOGIC_VECTOR(3 downto 0)。 SIGNAL bcd6 : STD_LOGIC_VECTOR(3 downto 0)。 河南理工大学毕业设计(论文)说明书 21 SIGNAL bcd5 : STD_LOGIC_VECTOR(3 downto 0)。 SIGNAL bcd4 : STD_LOGIC_VECTOR(3 downto 0)。 SIGNAL bcd3 : STD_LOGIC_VECTOR(3 downto 0)。 SIGNAL bcd2 : STD_LOGIC_VECTOR(3 downto 0)。 SIGNAL bcd1 : STD_LOGIC_VECTOR(3 downto 0)。 状态机定义 TYPE STATE_TYPE IS (IDLE,STROBE,DATA_LAUNCH)。 状态机信号 SIGNAL prs_state, next_state : STATE_TYPE。 状态机定义 TYPE WR_STATE_TYPE IS (wr_idle,wr_high,wr_low)。 状态机信号 SIGNAL wr_state : WR_STATE_TYPE。 SIGNAL DDSCR_reg : STD_LOGIC_VECTOR(7 downto 0)。 SIGNAL wrclock_reg : STD_LOGIC。 SIGNAL wren_reg : STD_LOGIC。 SIGNAL ramaddress : STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL ramdata : STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL fout : STD_LOGIC。 FWORD1 寄存器使能 SIGNAL f1_en : STD_LOGIC。 FWORD2 寄存器使能 SIGNAL f2_en : STD_LOGIC。 FWORD3 寄存器使能 SIGNAL f3_en : STD_LOGIC。 FWORD4 寄存器使能 SIGNAL f4_en : STD_LOGIC。 DDSCR 寄存器使能 SIGNAL cr_en : STD_LOGIC。 DDSDATA寄存器使能 SIGNAL data_en : STD_LOGIC。 河南理工大学毕业设计(论文)说明书 22 BEGIN Delayed Signals Detection Process 检测延迟信号 Delay_Signals_Proc: PROCESS(reset,clk) BEGIN IF(reset = RESET_ACTIVE) THEN as_delay = 39。 139。 ds_delay = 39。 139。 E。基于fpga的直接数字频率合成器的设计本科毕业设计(编辑修改稿)
相关推荐
logic; clk0 : in std_logic。 enable : out std_logic)。 end control。 architecture rtl of control is signal strobe : std_logic。 begin process (sysreset,reset0,on_off0) begin if (sysreset=‟1‟ or reset0 =
( 1) 高集成度、大容量、低成本、低电压、低功耗。 ( 2) 资源多样化。 基于 FPGA 的自动售货机控制器设计 4 ( 3) 适用于片上系统:处理器、高速串行 I/O、 DSP 等。 ( 4) 深亚微米工艺的使用。 目前基于 90nm 工艺的 FPGA 已经商用,正向65nm 挺进。 ( 5) 各种软硬 IP 库的发展和完善。 VHDL 语言概述 1982 年,超高速集成电路硬件描述语言
FPGA开发系统实现。 用户无需了解 FPGA,的内部构造和工作原理,只要在 计算机上输入电路原理图或硬件描述语言, FPGA开发系统就能自动进行模拟、验证、分割、布局和布线,最后实现 FPGA的内部配置。 FPGA的设计流程如图 : 设 计 输 入设 计 验 证( 时 序 及 内 电 路 模 拟 )设 计 实 现( 分 割 , 布 局 , 布 线 )F P G A用 户原 理 图 入 口文 本
b=fir1(N,wn,window);③b=fir1(N,wn,’ftype’);④b=fir1(N,wn, ’ftype’,window)。 其中N表示滤波器的阶数,wn是截止频率,取值在0到1之间,它是以采样频率的一半为基准频率的归一化值,1对应采样频率的一半,b为滤波器的系数向量h(n)(按降幂排列),window用于指定窗函数种类,缺省为海明窗,窗函数的长度为N+1。
2l OC192 帧结构数据 数据传送 发送方向的数据传送 发送方向功能框图见图 22。 来自 OC192 成帧器的 16 路 622Mbit/s 数据是字节对准的,它们与 622MHz 时钟同步,传送的 12 路 时钟信号同步。 成帧器有 效 数 据帧同步编码串并转换串并转换数 据 输 出 图 22 发送方向数据加工流程图 接收方向的数据传送 在接收方向 ( 见图 23) ,来自 12
输入。 时基电路可以由石英晶体振荡电路构成,假设晶振频率 1MHz,经过 6次十分频就可以得到秒脉冲信号。 译码显示电路由八段译码器完成。 数字钟硬件电路设计 本系统拟采用 Altera 公司 Cyclone 系列的 EP2C3T144 芯片。 选用该款芯片的原因是: ① Altera 公司的 Quartus II 开发环境非常友好、直观,为整个系统的开发提供了极大的方便; ② 该 FPGA