




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、eda 技术与 fpga 应用课程设计报告 i 成成 绩绩 评评 定定 表表 学生姓名高帆班级学号1101040126 专 业电子科学与 技术 课程设计题目音频信号存储与 播放电路设计 评 语 组长签字: 成绩 日期 20 年 月 日 eda 技术与 fpga 应用课程设计报告 ii eda 技术与 fpga 应用课程设计任务书 学 院信息科学与工程专 业电子科学与技术 学 生 姓 名高帆学 号1103040126 设计题目音频信号存储与播放电路设计 实践教学要求与任务实践教学要求与任务: : (1)4.096s 无格式音频信号数据,8ka/d 转换为 8bit 数据,共 32768 字节,存
2、储 播放; (2)音频数据自行解决; (3)扬声器播放(数据直接送出至 bit d/a) ; (4)可以部分播放,时长可控; (6)自行设计设计下载后的验证方案; (7)完成全部流程:设计文档、模块设计、代码输入、功能仿真、约束与综合、 布局布线、下载验证等。 工作计划与进度安排工作计划与进度安排: : 本设计持续两周,其中最后一天为答辩时间。 第 1-2 天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开 始设计方案和验证方案的准备; 第 3-5 天:完成设计与验证方案,经指导老师验收后进入模块电路设计(验收设计 文档) ; 第 6-7 天:完成模块电路设计,进行代码输入,并
3、完成代码的仿真(验收代码与仿 真结果) ; 第 8-9 天:约束设计、实现、下载验证(验收验证实现) ; 第 10 天:修正设计、整理设计资料,验收合格后进行答辩。 指导教师(签字): 年 月 日 主管院长(签字): 年 月 日 eda 技术与 fpga 应用课程设计报告 iii 摘 要 音频信号存储与播放电路设计目的是通过 altera 公司的芯片 cyclone(型号为 ep1c6q240c8)对音频编解码芯片 tlv320aic23b(以下简称 aic23b)进行控制,以完 成音频存储与播放的功能。该音频编解码芯片具有 ad、da 转换功能,通过使用 ip 核, 在 ep1c6q240c
4、8 片内例化 sram 空间,借以存储音频数据。同时设计电路,使在 ep1c6q240c8 与 aic23b 之间传输的各项数据满足其通信协议的相位要求。验证方法 是将一段音频数据初始化在 ep1c6q240c 的 sram 中,通过播放命令来播放音频。或 通过录音命令录音,然后再次通过播放命令进行播放。 现实中采用 verilog hdl 描述、modelsim 进行功能仿真、quartusii 进行逻辑综合 和适配下载,最后在 altera 公司的芯片 cyclone 器件上实现并完成测试。在此过程中, 根据任务书中的设计分工,完整地建立了测试平台,完成了功能仿真,从而保证了设 计的功能的
5、正确性。 关键词关键词 verilog hdl;fpga;aic23b;仿真; eda 技术与 fpga 应用课程设计报告 iv 目 录 摘 要.iii 引 言.1 1 总体电路结构设计.2 1.1 电路功能与性能.2 1.2 关键功能电路设计.3 1.3 电路接口.4 1.4 电路功能框图.5 1.5 验证方案.6 2 模块设计.7 2.1 输入命令处理模块 .7 2.2 发送命令模块设计 .8 2.3 听说模块设计 .10 2.4 存储模块 sram 设计.12 3 代码输入与仿真.13 3.1 hdl 代码输入.13 3.2 仿真与测试的功能列表.13 3.3 仿真平台构建 .14 3.
6、4 电路功能仿真结果 .15 4 设计的 fpga 实现及板级测试.18 4.1 sram 的 ip 生成与集成 .18 4.2 设计的管脚绑定约束 .18 4.3 设计实现与下载 .19 4.4 电路 fpga 测试.19 结论.21 参考文献.22 附录 a 设计源代码.23 顶层代码.23 sendcntrl模块代码.25 sendcommand模块代码.27 hearandspeak模块代码.38 附录 b 仿真代码.45 sendcommand模块仿真代码.45 hearandspeak模块仿真代码.46 myvoice顶层模块仿真代码.47 eda 技术课程设计报告 1 引 言 f
7、pga/cpld、dsp 和 cpu 被称为未来数字电路系统的 3 块基石,也是目前硬件 设计研究的热点。与传统电路设计方法相比,fpga/cpld 具有功能更强大,开发过程 投资小、周期短,可反复编程修改,保密性好,开发工具智能化等特点,特别是随着 电子工艺的不断改进,低成本 fpga/cpld 器件推陈出新,这一切促使 fpga/cpld 成 为当今硬件设计的首选方式之一。可以说 fpga/cpld 设计技术是当今高级硬件工程 师与 ic 工程师的必备技能。1 本设计需要设计一个音频信号存储与播放电路,该电路功能需要满足 fpga 芯片 与音频编解码芯片 aic23b 之间的信息传输协议要
8、求。通过 fpga 芯片对该音频编解 码芯片进行功能配置,从而实现音频的存储与播放。 本设计使用 altera 的 cyclone 芯片,开发过程中采用 mentor 公司的 modelsim 仿真 软件以及 altera 公司的集成工具 quartusii 实现设计。基本流程是这样的:首先根据设 计任务要求进行功能模块设计,然后依照 aic23b 芯片手册上的数据传输协议要求以 及该任务对电路的功能要求进行电路图的设计,之后将电路转变为 verilog hdl 代码, 并在 modelsim 下进行功能仿真。待仿真验证无误后,在 quartusii 平台下进行电路的 约束与综合;综合结果无误
9、后进行布局与布线,生成配置文件。最后下载、测试,从 而完成设计。本设计主要完成前端功能设计部分,即方案设计、代码输入、功能仿真。 eda 技术课程设计报告 2 1 总体电路结构设计总体电路结构设计 1.1 电路功能与性能电路功能与性能 音频信号存储与播放电路功能主要集中在四方面。一方面是命令输入端,由于接 受外部输入命令,需要将输入信号同步化,并根据同步后的信号产生状态信号。二是 发送命令配置模块。根据用户输入 fpga 的“听”或“说”命令,将不同的配置参数 发送给 aic23b 芯片。三是听说模块,待命令发送完毕后,开始进行语音信号的传输。 如果输入 fpga 的是“听”命令,则将 fpg
10、a 内部 sram 中的数据取出发送给 aic23b 芯片,其通过 da 转换成模拟信号输出。如果输入 fpga 内部的是“说”命令, 则将 aic23b 通过 ad 转换成数字数据存储在 fpga 片内的 sram 中。四是例化一片 内双口同步 sram,用来存储音频数据,其宽度是 16bit,深度是 4096。以上所有模块 为同步电路设计。电路的具体功能细节罗列如下: 1) 电路使用同步时钟,频率为 24m。aic23b 工作在 slave 模式下,其采样时钟, 相位指示信号都由 fpga 产生,通过配置 aic23b 的功能寄存器,使其采样频 率设定在 8k。 2) 向 fpga 输入“
11、听”或 “说”命令后,fpga 首先按照规定的时序要求向 aic23b 芯片发送功能配置命令,待发送配置命令完成后,该部分电路将向下 级电路发出配置完成信号。 3) 如果传入的是“听”命令,待配置完毕后, 电路首先将从 fpga 片内 sram 中存储的数据依次读出,完成读操作。然后电路发出相应的相位指示信号,以 i2s 总线方式,把串行数据发送给 aic23b 芯片,该芯片内部 da 将数字信号 转换成语音信号播出。 4) 如果传入的是“说”命令,待配置完毕后,电路产生相应的相位指示信号,此 时用户对麦克风讲话,aic23b 芯片内部 ad 将语音信号转换成数字信号在相 位指示信号的指示下将
12、数据串行送出,此时电路将顺序接收传来的串行数据, 并转换成 16 位并行数据存入片内的 sram 中。 eda 技术课程设计报告 3 1.2 关键功能电路设计关键功能电路设计 本电路设计的主要难点在于 fpga 与 aic23b 之间数据传输协议的接口时序要求。 图 1-1 为 aic23b 芯片在 spi 工作模式下传输控制命令的接口时序要求。in spi mode, sdin carries the serial data, sclk is the serial clock and cs latches the data word into the tlv320aic23b. the in
13、terface is compatible with microcontrollers and dsps with an spi interface.a control word consists of 16 bits, starting with the msb. the data bits are latched on the rising edge of sclk.a rising edge on cs after the 16th rising clock edge latches the data word into the aic2.一个控制字由 16 位组成,其中 d15d9 为
14、寄存器地址, d8d0 为数据。在本设计中aic23b 工作在 slave 模式下 cs、sclk 都由fpga 产 生。在这里需要注意的有两点,第一点是 cs 只在第 16 个 sclk 的上升沿后采取变化, 但又没有给出 16 位数据最高位的指示信号,所以,这些命令数据一定是连续发送的, 而且在所有命令数据发送前,sclk 信号不能有上升沿的变化。需要注意的第二点是 数据是在 sclk 的下降沿变为有效,在 sclk 的上升沿被采走,这样能够保证数据有 足够的保持时间。 图 1-2 为aic23b 芯片在i2s 左对齐工作模式下传输音频的数字数据的 接口时序要求。 在此功能模块下, lrc
15、in/lrcout 为相位指示信号, in left-justified mode, the msb is available on the rising edge of bclk, following a rising edge on lrcin or lrcout2.在本设计 中aic23b 工作在 slave 模式下 lrcin/lrcout、bclk 都由fpga 产生。在这里同 样需要注意两点, 数据是在 bclk 的下降沿变为有效,在 bclk 的上升沿被采走,这样 能够保证数据有足够的保持时间。第二点是关于设置采样周期,应该为 lrcin/lrcout 周期的一半。 图 1-1
16、aic23b 芯片 spi 接口时序 图 1-2 aic23b 芯片 i2s 接口时序 左对齐模 式 eda 技术课程设计报告 4 1.3 电路接口电路接口 整个设计可分为三个部分,发送配置命令、听说、数据的存储。其中,数据存储 于 fpga 片内 sram 中,其接口不在这里做具体解释,详情见 2.4 存储模块设计。接 口的具体信息如如下表 1.1 所示。 表 1.1 接口信号表 名称 io 属性 描述备注 clkin线路输入时钟, 频率为 24m rstin系统复位信号,与 clk 异步 speakbuttonin说命令输入端 hearbuttonin听命令输入端 doutini2s fo
17、rmat serial data output from the sigma-delta stereo adc 2 csnoutcontrol port input latch/address select. for spi control mode this input acts as the data latch control. 2 sclkoutcontrol-port serial-data clock. for spi and 2-wire control modes this is the serial-clock input. 2 sdinoutcontrol-port ser
18、ial-data input. for spi and 2-wire control modes this is the serial-data input and also is used to select the control protocol after reset.2 lrcoutouti2s adc-word clock signal. in audio slave mode, the signal is generated by the dsp. 2 lrcinouti2s dac-word clock signal. in audio master mode, the aic
19、23b generates this framing signa and sends it to the dsp. in audio slave mode, the signal is generated by the dsp. 2 dinouti2s format serial data input to the sigma-delta stereo dac 2 bclkouti2s serial-bit clock. in audio slave mode, the signal is generated by the dsp. 2 eda 技术课程设计报告 5 ledout1:0out连
20、接 led,指示当前输入命令为什么 1.4 电路功能框图电路功能框图 依照功能,将电路分为四个模块:输入命令处理模块 sendctrnl,发送命令模块 sendcommand,听说模块 hearandspeak,存储单元 sram。整个电路采用同步时钟 clk 驱动,时钟频率为 24m。电路的功能框图如下图 1.3 所示。 在图 1.3 中,模块 sendctrnl 接收 hearbutton 与 speakbutton 传过来的信号,在模块 内部将这两个异步信号同步。同时,该模块内部的状态机根据输入的指令以及 conf_end 信号来变换状态,并将电路此时状态传给下级单元 sendcomma
21、nd 与 hearandspeak。 sendcommand 模块的输入信号之一是 conf_state1:0,这个变量里存储了当前的状 态值,该模块会根据不同的状态值来向 aic23b 发送不同的命令。每次发送命令,会 依次发送十一条配置命令。待其发送完毕后会产生 conf_end 信号。其向 aic23b 的输 出信号有三个,sclk 为一时钟信号,由系统时钟 clk 经过 150 分频得到,该信号的作 用是驱动 aic23b 采到线上的数据,csn 为 aic23b的锁存信号,sdin为 1bit 数据。 hearandspeak模块在“听”状态下,可将从sram中的数据读出16bit数
22、据,以i2s 方式发出去。该模块在“说”模式下可以将aic23b传来的串行型号整合成并行信号, 并顺序存储在sram内部。dout为输入的串行数据。其输出信号连接aic23b的相应 引脚。lrcout、lrcin都是相位指示信号,由系统时钟6000分频得到,bclk为驱动 aic23b的采样时钟,由系统时钟 150 分频得到。向sram 读、写数据时,都由低地址 位开始,模块内部有地址计数器用来计算应该操作哪个地址。 sram模块为fpga内部的sram。在本设计中,使用quartusii中的ip,生成一个双 口ram。其宽度为 16bit,深度为 4096。具有读写使能输的入端口,读写的地址
23、端口, 时钟上升沿动作。 eda 技术课程设计报告 6 图 1.3 电路功能框图 1.5 验证方案验证方案 设计的验证主要有两方面的内容:一是代码输入过程中的仿真验证;二是在硬件 电路板上的验证。仿真的验证首先需要对不同的模块写激励文件,依据特定的输入, 不断修改方案,直至完成功能。然后再将各个模块连接起来,在顶层文件中一同例化, 再次编写测试文件,给定输入信号,查看仿真波形。尤其要注意模块之间的接口部分 各个信号的相位关系、数据值是否正确。 板级验证需要需要的是将输入信号连接开关,还需要将麦克风与耳机连接在 aic23b 的相应端口上。输入不同命令,以检验电路功能。在未完成设计之时,也可以
24、降低系统的时钟频率,将一些关键变量的输出引脚与试验箱上的 led 相连,通过在低 频状态下观察 led 的亮灭来查看电路的工作情况。 eda 技术课程设计报告 7 2 模块设计模块设计 整个设计接口可以分为 4 个部分。第一个部分是输入命令处理模块,第二个是发送 命令模块,第三个是听说模块,第四个是存储单元模块。这里对模块的详细功能和时 序关系进行细致说明。 2.1 输入命令处理模块输入命令处理模块 输入命令处理模块的主要功能是同步异步输入的听或说的命令,并判断出是何种 命令,并产生相应信号,且根据同步后的信号做出状态转移与确定。具体如下。 1) 首先将 hearbutton 与 speakb
25、utton 各自连接两个 d 触发器,目的是将这两个异 步信号同步在系统的时钟下。the purpose of synchronizing signals is to protect downstream logic from the metastable state of the first flip-flop in a new clock domain.3 2) 通过输入信号在连续两个时钟周期下的边沿变化,来判别当前输入的命令是需 要进行“听”的命令配置还是“说”命令配置。 3) 在这个模块中,存在一个状态机。其有四种状态,分别是:00 代表空闲状态, 01 代表听状态,10 代表说状态,
26、11 代表结束配置状态。图 2.1 为此状态机的 状态转移图。 图 2.1 输入命令处理模块 sendcntrl 的状态转移图 eda 技术课程设计报告 8 由状态转移图 2.1 可知,该状态机是描述命令配置状态的,该模块有四个状态。其 中 hconf 与 sconf 分别为“听” 、 “说”配置信号,它们通过检测输入信号的电平变是否 变化化来确定,此信号的到来使电路开始对 aic23b 的相应寄存器进行配置,执行后 续的 sendcommand 模块。conf_end 信号为配置完成信号。 本模块的接口信号如下表 2.1 所示。 表 2.1 输入命令处理模块 sendcntrl 接口信号表
27、名称 io 属性描述备注 clkin线路输入时钟, 频率为 24m rstin系统复位信号,与 clk 异步 speakbuttonin说命令输入端 hearbuttonin听命令输入端 conf_endin该模块接收发送命令完成信号,用来控制状态转移 conf_state1:0out设置状态 00 为空闲,01 为听,10 为说,11 为完成 配置 ledout1:0out连接 led,指示当前输入命令为什么 2.2 发送命令模块设计发送命令模块设计 该模块用于产根据用户不同的输入向 aic23b 发送不同的配置命令。一共 11 个命 令,每个命令 16bit。电路主要的功能如下: 1) 计
28、数器 cnt150 记录 clk 的脉冲数,并由 cnt150 的计数值生成 sclk 信号。该信 号驱动 aic23b 对命令数据进行采样。同时,电路依据 cnt150 的数值还会确 定当计数器计到何值时,会操作 encntcommandnum 信号以及发送相应 bit 位 的数据。cmt150 的作用相当于一个参考时钟,其计数值时刻告诉电路应该去 进行什么操作。 2) 计数器 cnt16 作用是计算应该发送 16bit 命令的哪一位。在 cnt150 等于 149 时 进行加一操作。 3) cntcommandnum 的作用是计算应该发 11 个命令中的哪一个。在 cnt150 等于 14
29、9 且 cnt16 等于 15 的时候加一。 eda 技术课程设计报告 9 4) cs 会在 cnt16 计到 15 的时候被拉低。作为 16 位信号的发射信号。当 cs 再次 被拉高时,aic23b 将采到的数据锁存起来,并进行相应操作。 sendcommand 模块的 rtl 电路如下图 2.2 所示。 图 2.2 sendcommand 模块 rtl 电路图 本模块的接口信号如表 2.2 所示 表 2.2 发送命令模块 sendcommand 接口信号表 名称 io 属性 描述备注 clkin线路输入时钟, 频率为 24m rstin系统复位信号,与 clk 异步 conf_statei
30、n电路当前状态指示信号 conf_endout发送命令完成指示信号 sclkoutcontrol-port serial-data clock. for spi and 2-wire control modes this is the serial-clock input. 2 csnoutcontrol port input latch/address select. for spi control mode this input acts as the data latch control. 2 sdinoutcontrol-port serial-data input. for spi
31、and 2-wire control modes this is the serial-data input and also is used to select the control protocol after reset.2 eda 技术课程设计报告 10 2.3 听说模块设计听说模块设计 hearandspeak 模块的功能是将 sram 中的 16bit 并行数据取出后,按照 lrcin 与 bclk 以及同数据相位要求生成 lrcin 与 bclk 信号,并将数据串行发出,送给 aic23b 的 din 引脚,数据经过其内部 da 转化成模拟信号输出,从而完成“听”命 令的操作。
32、 “说”命令情况类似,在 lrcout 和 bclk 与数据的相位要求下, lrcout 与 bclk 信号,并将 aic23b 发送的信号串行采回,并整合成 16bit 数据存 入 sram 中。电路的具体功能如下。同时,该模块还用描述数据状态的状态机。具体 功能说明如下: 1) 计数器 cnt150 的功能是计算时钟信号的脉冲数。在这个模块中,其的作用相当 于一个参考时钟,在其不同数值的时刻,电路采取不同操作。bclk 信号即由 其产生。 2) 计数器 cnt40 的做用是指示电路应该发送哪一位数据或者接收的 1bit 数据应该 存在 16bit 的哪一位上。 。cnt40 在 cnt15
33、0 等于 149 的时候进行加一操作。 3) 计数器 cnt4096 用来计算当前应该读或写哪一个地址。 4) 该模块描述数据状态的状态机如图 2.3 所示。该状态机共有 4 个状态。00 为空 闲状态;01 为数据重放状态(即为听状态);10 为存储数据状态(即为说状态); 11 为在录音状态下还未完成录音时,听命令来到时的等待录音结束状态。 eda 技术课程设计报告 11 图 2.3 听说模块的状态转移图 图 2.4 听功能模块的 rtl 电路图图 上图为 hearandspeak 模块中听功能的 rtl 电路图。说功能与之类似,故在这里 不再赘述。 本模块的接口信号如下表 2.3 所示。
34、 表 2.3 听说模块 hearandspeak 接口信号表 名称 io 属性 描述备注 clkin线路输入时钟, 频率为 24m rstin系统复位信号,与 clk 异步 conf_endin电路当前状态指示信号 conf_statein发送命令完成指示信号 eda 技术课程设计报告 12 voicedata16bitfromramin来自 sram 的数据 voicedata1bitininaic23b 经过 ad 转换后发出的一位串行数据 bclkouti2s serial-bit clock. in audio slave mode, the signal is generated b
35、y the dsp. 2 rdenout读 sram 使能信号 rdaddressout读 sram 地址信号 lrcinouti2s dac-word clock signal. in audio master mode, the aic23b generates this framing signa and sends it to the dsp. in audio slave mode, the signal is generated by the dsp. 2 voicedata1bitoutouti2s format serial data input to the sigma-de
36、lta stereo dac 2 wrenout写 sram 使能 wraddressout写 sram 地址 lrcoutouti2s adc-word clock signal. in audio slave mode, the signal is generated by the dsp. 2 voicedata16bittoramout需要存储到 sram 中的数据 2.4 存储模块存储模块 sram 设计设计 该模块用来存储音频数字数据。宽度为 16bit,深度为 4096.读写使能为高电平有 效。本模块的接口信号如下表 2.4 所示。 表 2.4 长度锁存模块 myram 接口信号
37、表 名称 io 属性 描述备注 clkin线路输入时钟, 频率为 24m rstin系统复位信号,与 clk 异步 wrenin读 sram 地址信号 rdenin读 sram 使能信号 rdaddressin读 sram 地址 wraddressin写 sram 地址 eda 技术课程设计报告 13 dinin需要存储到 sram 中的数据 qout从 sram 中读出的数据 3 代码输入与仿真代码输入与仿真 3.1 hdl 代码输入代码输入 电路设计完成后,就要进入 eda 设计流程,首先进行电路设计 hdl 输入。设计 共有四个子模块和一个顶层模块,另外还有测试代码。电路 hdl 代码输
38、入仅是对前述 电路设计的描述,相对较简单:根据 1.3 节的电路接口和 1.4 节的电路功能框图进行顶 层代码的输入;根据第 2 章模块设计的内容及其中的 rtl 电路图进行模块代码的输入; 其中双口同步 sram 采用 fpga 的分布 sram 块,在 hdl 描述时只采用 cycloneii 器 件的功能和时序模型。测试代码本章会详细介绍。所有代码清单见附录。 3.2 仿真仿真与测试的功能列表与测试的功能列表 在 fpga 设计中功能验证分为两部分,一部分是电路功能与时序的软件仿真,也 叫前仿真,采用 moldsim 完成,这是本章主要内容;另一部分是在 quartusii 中设置约 束
39、项,并将将配置文件下载后在开发板上对设计进行测试,通过开关、按键、led、 数码管以及示波器、逻辑分析仪等方式进行,由第 4 章详述。 功能仿真主要的工作就是模拟外部输入的信号,根据电路需要完成的功能来构造 输入激励。设计中需要检查的功能如下,在仿真中需要加载相应的激励来验证设计是 否符合要求。 1) 全局异步复位功能当复位信号低有效时,电路应处于复位状态,任何输入 没有响应、任何触发器的输出均为初始态,sram 的输出为不定态,当复位信 号变为高电平时,电路正常工作。 2) 时钟信号本设计采用同步时钟,即所有时序器件都采用一个时钟来驱动。 eda 技术课程设计报告 14 时钟频率为 24mh
40、z。当该时钟无效时,与之相关的电路处于静止状态,输出 不发生变化;时钟有效后相应的电路才会正常工作。 3) 在仿真开始时,需要查看 sendctrnl 模块的接口信息是否正确。检查复位时所 有信号是否都为初始值,并且这些初始值是否都符合设计者的意图。通过在改 模块内对状态机的描述,应该考虑到实际中发生的多种情况,比如需要在激励 文件中除了要描述“听” 、 “说”两次配置中间有较大的延时情况,还需要构造 两次连续配置的情况。这种情况虽然概率很小,但是有可能发生。为了使程序 更加健壮,需要将此部分纳入设计。 4) 在 sendcommand 模块中需要检查的功能主要在于 cs 与 sclk 以及
41、sdin 三个 信号之间的相位关系是否符合 1.2 节的内容要求。除此之外,因为是要对 aic23b 进行功能配置,所以配置命令内容的正确性也需要确定。 5) 在 hearandspeak 模块下,需要验证“听”的功能。因为此时需要将内存中的 数据读取出来发出去,所以首要问题需要完成内存的初始化工作以及对内存 “读”功能的验证。其次需要检查 lrcin、bclk 以及 din 三个信号的相位 关系是否符合 1.2 节的内容要求。同时需要验证在对应位置上发送的是否是对 应数据。这需要按位置比对内存中初始化的数据。 6) 在 hearandspeak 模块下,还需要验证“说”的功能。因为此时的实际
42、情况是 aic23b 在相位指示信号的作用下将音频数据串行发出,所以需要在激励文件 中按照时序要求模拟其串行发出的信号。该信号需要满足 lrcout、bclk 与 dout 之间的相位要求,如 1.2 节所示。其次,需要验证对内存单元的“写” 功能,检查模拟发出的串行数据是否按位存储在预订的内存地址中。 3.3 仿真平台构建仿真平台构建 仿真激励的构造只要针对需要验证的功能即可。在本设计中,首先需要的是分模 块验证,相应文件为 sendcommandsti.v、myram.v、hearandspeak.v。其次需要再次 设计顶层模块,将各个模块联合起来验证,相应文件为 myvoicetb.v。
43、 在 sendcommandsti.v 文件中需要设置时钟信号、复位信号以及命令输入信号。在 仿真波形中需要观察输出信号的相位关系。并通过内部的计数器值对他们进行调整。 在 hearandspeak.v 文件中,当验证“听”功能时需要时钟信号、复位信号、设置 状态信号以及配置完成信号。同样的,当验证“说”功能时需要时钟信号、复位信号、 eda 技术课程设计报告 15 设置状态信号以及配置完成信号,还需要按照时序要求构造由 aic23b 传来的数据。 在 myvoicetb.v 中将几个功能模块连接起来,主要考察其相互之间接口信号的时 序是否符合要求。 3.4 电路功能仿真结果电路功能仿真结果
44、首先需要仿真的是发送命令模块。图 3.1a 为发送命令的整体时序图 图 3.1a 发送命令整体时序图 图 3.1b 发送单个命令的时序仿真 由图可看出,并行的待发送的 command 值为 0000111000000000。此命令为复位命 eda 技术课程设计报告 16 令,观察时序图的 sdin 与 sclk 的相位关系,能够保证 sclk 在上升沿采到数据。 所以仿真正确。 图 3.1 cnt16 仿真验证 由图 3.1c 可以看出,cnt16 在 cnt150 等于 149 时后的下一个上升沿进行加一操作。 其次是听功能的仿真 图 3.2a 初始化 sram 中的数据 图 3.2b 听功
45、能发送数据仿真 如图 3.2b 所示,当命令配置状态 cstate 为听状态,数据状态 dstate 为 replay 状态时, 该模块开始实现“听”的功能,向 aic23b 发送数据。首先计算应该读取的内存地址。 由图 3.2a 与图 3.2b 对应可看出,memorylist 中相应地址上的数据与发送的数据相符合。 其次观察 lrcin 与 bclk 的相位关系,同样符合要求。 eda 技术课程设计报告 17 听功能验证后,调用顶层模块完成输入“说”命令的方针,过程为首先进行命令 配置,然后模拟 aic23b 发送数据。在这里的数据为从数值为 0 xffff 开始递减,依次存 入到 sra
46、m 中。 图 3.3a 说功能接收数据全局仿真 由图 3.3a 可看出,前一部分为配置命令的状态,后一部分为接收 aic23b 发来的 数据的状态,也就是 record 状态。 图 3.3b 说功能接收数据仿真 eda 技术课程设计报告 18 由图 3.3b 可知,待发送命令完毕后,系统进入接收数据状态,在 lrcout 的相位 指示下,依次将数据采回,并计算地址,存入 sram 中。下图即为存入 sram 中的 memorylist,与发送的数据一致,验证成功。 图 3.3c 存入 sram 中的数据 4 设计的设计的 fpgafpga 实现及板级测试实现及板级测试 在完成电路的代码输入及仿
47、真之后,就要进行 fpga 实现和电路的验证了。fpga 实现主要由三个环节构成:时序约束与管脚绑定约束(不考虑面积约束) 、电路综合以 及布局布线、fpga 下载编程。另外双口同步 sram 的生成也在 fpga 实现环节完成, 所有流程均由 altera 的开发平台 quartusii 完成。 4.1 sram 的的 ip 生成与集成生成与集成 设计中用到一个双口同步 sram,该单元需要由 cycle 器件内部的分布式 sram 构成,因此设计过程中需要利用 quartusii 自带的 ip 生成工具 megawizard plug-in manager 生成并配置一个设计需要的 ram
48、。 eda 技术课程设计报告 19 4.2 设计的管脚绑定约束设计的管脚绑定约束 设计中所有的端口都需要与 fpga 器件的管脚(pin)映射起来才能实现功能。在 电路板上电源(vdd/gnd)部分已经固定好了,不需要进行管脚的映射。其余的管脚 需要参照 pcb 板上的布线,将时钟信号、复位信号、开关量输入信号、aic23b 的接 口信号管脚与设计端口锁定。以下为本设计的.qsf 文件。 set_global_assignment -name family cyclone set_global_assignment -name device ep1c6q240c8 set_global_ass
49、ignment -name top_level_entity myvoice set_global_assignment -name original_quartus_version 11.0 set_global_assignment -name project_creation_time_date 20:24:29 january 06, 2014 set_global_assignment -name last_quartus_version 11.0 set_global_assignment -name verilog_file rtl/sendcommand.v set_globa
50、l_assignment -name verilog_file rtl/sendcntrl.v set_global_assignment -name verilog_file rtl/myvoice.v set_global_assignment -name verilog_file rtl/hearandspeak.v set_global_assignment -name error_check_frequency_divisor 1 set_global_assignment -name min_core_junction_temp 0 set_global_assignment -n
51、ame max_core_junction_temp 85 set_global_assignment -name qip_file myram.qip set_global_assignment -name partition_netlist_type source -section_id top set_global_assignment -name partition_fitter_preservation_level placement_and_routing -section_id top set_global_assignment -name partition_color 167
52、64057 -section_id top set_global_assignment -name stratix_device_io_standard 3.3-v lvttl set_location_assignment pin_75 -to bclk set_location_assignment pin_76 -to csn set_location_assignment pin_74 -to din set_location_assignment pin_68 -to dout set_location_assignment pin_73 -to lrcin set_location
53、_assignment pin_67 -to lrcout set_location_assignment pin_78 -to sclk set_location_assignment pin_77 -to sdin set_location_assignment pin_28 -to clk set_location_assignment pin_57 -to hearbutton set_location_assignment pin_99 -to ledout2 set_location_assignment pin_98 -to ledout0 set_location_assign
54、ment pin_240 -to rst set_location_assignment pin_56 -to speakbutton set_global_assignment -name hex_file rtl/jay_normal.hex eda 技术课程设计报告 20 set_global_assignment -name hex_file rtl/jay_oneline.hex set_global_assignment -name hex_file rtl/jay_1k.hex set_instance_assignment -name partition_hierarchy r
55、oot_partition -to | -section_id top 4.3 设计实现与下载设计实现与下载 完成设计的约束之后就可以对设计进行逻辑综合、布局布线,生成对应的 fpga 配置文件并下载到对应器件中了。 4.4 电路电路 fpga 测试测试 设计下载到配置 rom 或者 fpga 中之后就可以对电路进行测试了。 本设计中当开始复位后,将拨码开关拨至“听”命令状态时,电路将向 aic23b 发 送数据。此数据是在例化 sram 时用.hex 文件对其进行初始化的数据,数据内容为一 段歌曲转换成的音频数据。但是测试结果并不令人满意,听到的只有杂音。 首先验证是否是配置命令的模块出现问
56、题,没有按照预定的数值配置成功。测试方 法是重配置一个命令的编码值,降低之前的放音音量。配置完成后烧录程序,复位后 再次进入“听”状态,声音已经减小。说明发送配置命令部分没有问题。 但有可能是因为初始化音频数据本身的问题,造成杂音。所以为了验证数据源的正 确性,在测试过程中人为生成了一串幅值固定的,单一频率的数据,频率为 1khz,的 数据串。用 quartusii 生成.hex 文件并对 sram 初始化。再次烧录程序,复位后再次进 入“听”状态,但是测试结果仍旧不令人满意,什么都听不到。无法判定是否因为数 据问题导致杂音。 若将有杂音的数据文件播放完后,将拨码开关置位在“说”状态,电路将接
57、收 aic23b 发送的数据。待到 fpga 片内 sram 空间记满后,不再进行录音操作。当再 次听时,之前的杂音已经没有,基本没有什么声音。说明已有数据进入 sram 中,但 尚未找到没有声音放出的原因。 将整个系统的时钟频率降低后,将一些关键信号值赋给 led 显示出来,看到在不 同命令下确有数据的流动,也未找出时序问题。再看功能仿真的波形图,对比 aic23b 的 datasheet,也未发现有相不一致的地方。故至今未找到听说功能无法实现的原因, 电路功能设计失败。 eda 技术课程设计报告 21 结论结论 本次设计经过功能仿真后最终没能通过板级验证。未能完成任务书中的要求。且目 前尚
58、未找到问题所在。虽然这次课程设计最终结果并不令人满意,但这 20 多天的课程 设计让我第一次切实了解了完成一个设计需要的流程,锻炼了我设计硬件电路的思维, 又学会了一些基本的设计方法,也让我知道了一些设计电路的基本原则,如驱动时钟 不要由组合电路产生,会产生毛刺、全局信号不要与其他信号进行运算除此之外, 我还知道了在仿真分析波形时要多多注意在模块的各种边界情况是否满足设计要求, 出现问题时应该如何思考。通过这次课设让我意识到,需要对平时产生的问题及时进 行归纳与总结,日积月累才能在设计中游刃有余。 经过这次培训,我也更加认识到自身的不足。就本设计来说,我只尝试了 aic23b 的 slave
59、工作模式。如果将其配置为 master 模式会是什么情况?如果尝试不同的采样 频率会不会带来什么新的问题知识是永无止境的,永远不能抱有浅尝则止的态度。 想要成为一名硬件工程师,我还有很长很长的路要走。我需要的是不断的思考,不断 的打开视野。 最后,衷心感谢马老师在这次课程设计中对我的倾力帮助! eda 技术课程设计报告 22 参考文献参考文献 1 王诚 吴继华 范丽珍 薛宁 薛小刚 alter fpga/cpld 设计(基础篇) 人民邮电出版社 2005.7 2 texas instruments tlv320aic23b data sheet,february, 2004, 3 mike s
60、tein, crossing the abyss:asychronous signals in a sychronous world. paradigm works july,2003,24 4 ieee,ieee standard for verilog hardware description language 2006 5 夏宇闻 verilog 数字系统设计教程 北京航空航天大学出版社 2003.7 eda 技术课程设计报告 23 附录附录 a 设计源代码设计源代码 顶层代码顶层代码 module myvoice(clk,rst,dout,speakbutton,hearbutton,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业会议组织及纪要制作工具
- 2025-2030中医药保健品市场发展现状及未来趋势与投融资策略分析报告
- 固定资产管理台账资产清查与处置指南
- 2025至2030防火门B级行业市场深度研究及发展前景投资可行性分析报告
- 娱乐产业发展趋势研究统计表
- 2025年广东中考物理试题及答案
- 高三上学期期末审题训练详解
- 2025年学历类自考中外教育管理史-学前心理学参考题库含答案解析(5套试卷)
- 2025年学历类自考中外教育简史-幼儿文学参考题库含答案解析(5套试卷)
- 2025年特种设备作业人员Q1起重机指挥考试题及答案
- 2025年政府部门文秘岗位笔试模拟题及答案集
- 2025年全科医师转岗培训理论知识题库及参考答案
- 2025-2026学年人教版(2024)初中生物八年级上册教学计划及进度表
- 中药材种植与采购合同标准范本
- 2025年测绘专业技术中级职称考试试卷及答案
- 2025新租房合同范本(标准)
- 仓库盘点流程与库存管理技巧
- (高清版)DB11∕T 1455-2025 电动汽车充电基础设施规划设计标准
- 2025年辅警招聘考试真题(含答案)
- 电化学储能电站设计标准
- 消除母婴三病传播培训课件
评论
0/150
提交评论