SOC课程设计-山东大学

上传人:bao****ty 文档编号:150529939 上传时间:2020-11-06 格式:DOC 页数:29 大小:1.60MB
返回 下载 相关 举报
SOC课程设计-山东大学_第1页
第1页 / 共29页
SOC课程设计-山东大学_第2页
第2页 / 共29页
SOC课程设计-山东大学_第3页
第3页 / 共29页
SOC课程设计-山东大学_第4页
第4页 / 共29页
SOC课程设计-山东大学_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《SOC课程设计-山东大学》由会员分享,可在线阅读,更多相关《SOC课程设计-山东大学(29页珍藏版)》请在金锄头文库上搜索。

1、SOC 设计方法与实现课程设计一、实验负责人: 二、实验时间:2012.11.202012.12.14三、设计说明: 设计一个数字信号处理器系统,其功能为:在8位微控Intel8051的控制下对输入信号进行数字滤波处理并根据输入数据的大小产生一组控制液晶板的显示。工作过程如下:(1)Intel8051是微处理器;(2)TH99CHLS是要实现的系统;(3)Display是一个液晶显示板。它包括三个显示区:一个时间显示区,一个数字显示区和一个由16个小方块组成的信号幅度显示,其结构见下图所示。对应的管脚接高电平时,液晶板上的线段显示;接低电平时,线段消失。 四、实验目的:完成一个数字系统的Ver

2、ilog HDL描述和利用EDA工具的Verilog HDL仿真综合环境对这一描述进行仿真并综合,完整地从事一个数字VLSI系统的设计过程,理解和掌握现代集成电路的设计流程、硬件描述语言综合理论等高层次设计方法以及它和物理实现之间的关系,巩固在理论课阶段学习的相关知识 。5、 实验设备:代码输入工具: QuartusII功能仿真: ModelSim SE 6.2b综合工具:DC,Synplify Pro 8.6.26、 系统简介: 1、工作过程 (1) 在外部信号PEbar的控制下,芯片从端口in读入一个八位数据。(2) 在(1)中输入的数据与微处理器给出的另一个八位数据进行按位“与”操作。(

3、3) 在(2)中处理过的数据经数字滤波后从端口out输出。(4) TH99CHLS 内部产生一组时间信号,包括时和分,其格式为:(hh:mm)。这组时间信号的初值由微处理器给出,微处理器可以随时对时间信号进行修改。(5) 送往液晶显示板的信号有三组:a. (4)中产生的时间信号,经七段译码后从端口hour和minute送出;b. (3)中经数字滤波的信号,在转换成十进制并做七段译码后,百位经端口d00,十位经端口d10,个位经端口d01送出; c. (3)中经数字波的信号,在经过压缩后通过端口ap送出。 2、数字滤波器数字滤波器的转移函数为: 滤波器的系数B0,B1,.,B6均由微处理器给出。

4、微处理器可以根据需要修改这些系数。3、 模块说明根据功能分析,将整个系统分为8个模块。各个模块对应的源文件和功能描述如下表所示。模块名称对应源文件功能说明decoderdecoder.v将四位二进制译码为LED显示。输入4bit,输出为7bit直接驱动显示装置,为组合逻辑。H2DH2D.v进行16进制到十进制的转换。输入为8bit无符号数,输出为百,十,个位数字(其中每个数字4bit位宽),同样为组合逻辑decoder_4X16decoder_4X164-16译码器,主要是将经过y=sqrt(x)压缩后的数据送至显示设备。输入4bit,输出16bit,组合逻辑。sqrt_lutsqrt_lut

5、.v主要实现y=sqrt(x)的运算。主要是通过比较和查找表方式实现。输入8bit,输出4bit。时序逻辑,一个时钟周期。mul8b_shiftadd_fsmmul8b_shiftadd_fsm.v乘法器设计。通过移位加的方式实现。内部通过状态机实现。完成一次乘法需要8个时钟周期timer_clktimer_clk.v时间时钟模块,主要是根据系统时钟计算秒。通过计数器级联的方式实现。filterfilter.v这是整个系统比较核心的部分。主要实现滤波器的设计和与微处理器的接口时序设计。接口需要三态控制,并且要注意读写信号的控制,滤波器采用并行设计,用面积换取速度。TH99CHLSTH99CHL

6、S.v顶层元件例化。主要是将上述各个模块进行组合。 整个功能框图如下:七、行为描述及仿真结果下面是测试用的模块介绍,模拟TH99CHLS外围的单片机、控制信号和数据输入等:模块名称对应的源文件功能说明osc_rstosc_rst.v产生时钟频率和复位信号fir_tbfir_tb.v滤波器数据的输入wr_rdwr_rd.v单片机WR,RD信号的模拟mcumcu.v主要是模拟单片机对TH99CHLS芯片的控制,包括寄存器的读入与读出等一系列操作top_testtop_test.v顶层测试文件,主要是进行元件例化ModelSimSE功能仿真结果波形图如下:第一张图为前0-7us,第二张图为7us-1

7、5us.详细图形见source中的1.bmp和2.bmp.也可以查看其下的vsim.wlf(需要安装modelsim)。此图为对TH99CHLS芯片内部b0-b6(滤波器系数)寄存器的操作和对mini,hour寄存器初始化的操作仿真结果。八、综合结果及分析Synplify综合结果如下:DC综合结果如下:九、所占用的资源和数据通道分析 该系统所占用的资源如下:在滤波器设计中,并没有采用乘法器的复用,而是采用了多个乘法器的复制,牺牲面积来换取速读的提高。综合后的频率能够达到50MHz。滤波器的数据通道如下:(用多个乘法器)10、 RTL 级设计 RTL 级设计的基本部件是寄存器、计数器、多路复用器

8、和算术逻辑单元(ALU),通常采用真值表和状态表来表示,其描述多采用数据流描述方式,行为级设计中,通过定义 I/O 响应的方式描述硬件,很少考虑硬件的具体实现,仅仅是一些写就的程序或者过程,用于模拟器件行为,建立算法模型,由于没有考虑具体物理实现,通常综合效果不好。RTL 级设计中,数据的相关性与硬件的物理实现是一致的,存在直接的映射关系,其描述说明的是数据在寄存器间的实际移动与寄存器级实现。 基于物理实现的考虑,因此RTL 描述是有着许多限制的。使用verilog 语言描述的风格对设计有很大的影响。就逻辑综合而言,重要的是考虑实际的硬件实现问题:在不牺牲高抽象层次和控制逻辑综合输出结构之间要

9、进行折中。 在之前的行为级设计时,设计者编码风格偏向于RTL 级描述,因此需要对个别语句进行修改即可,具体verilog 代码见报告Appendix部分。 在本设计中,采用台积电0.13um工艺库tcb013ghp,综合库采用 dw_foundation.sldb 由于设计规模的原因,约束文件中设置约束较宽松,且不加线负载,根据设计要求及以上设计考虑,编写.synopsys_dc.setup 文件和top.con 约束文件进行综合设计。得出所设计系统的门级网表,并分析系统的功耗,面积,时序等信息。 十一、控制状态及化简 由滤波器公式可知采用通常的调配方法,用四个步长来实现。如图所示:这样的方法

10、虽然可行,但资源的使用太大,需要7个乘法器和3个加法器,同时逻辑综合后也会消耗很大的面积和功耗,为了提高资源的利用效率,我们需要对数据通路和控制器重新设计,尽量减少资源数量,同时在速度和代价上做出相应的优化。 由于公式中的描述乘法器过多而牺牲了很大的代价,在设计中,先以减少乘法器为目的,但如果只采用一个乘法器,控制步又变得相对冗长,所以,在这个实验中,采用6个时钟步长,根据“基于距离”的资源调配方法,实现算子的调度与资源的调配,同时,对寄存器也进行了优化,使得其采用更少的寄存器。资源分配的优化如下图所示: 上图采用6个步长,资源包括:乘法器M1、M2,加法器A1、A2,寄存器:r1、r2、r3

11、、r4。当然使用6个步长较上一种方案可能速度上有所牺牲,但带来了寄存器代价和资源代价的很大改善。十二、门数和结果分析 综合之后生成系统芯片如下图所示,给出了芯片的I/O 引脚。 综合生成的门级网表如下图所示: 在命令行中输入design_visionsizeof_collection get_cells hierarchical * ,可以得到系统的cell 数目,报告如下所示: 由于库里不包含详细的每个门的晶体管电路,系统只能报告cell 的个数,为224,根据cell 估算系统的门数,大致在 1000门左右。 在命令行中输入report_area ,可以得到系统的面积,最后得到的芯片总面积

12、为2137.026628,报告如下所示: 在命令行中输入report_ power,可以得到系统的功耗,由于各个引脚的高低电平不确定,系统默认库里的电压值进行计算,设定 V=1V,总功耗为 9.1080uW,报告如下所示: 加激励文件对设计进行仿真验证得到的系统总波形图如下图所示: 仿真验证结果与行为级仿真验证结果基本相似,可知本设计及综合基本完成了本系统的功能要求、时序要求。 综上所述,本设计系统基本完成了设计要求(功能、时序),系统包含 224 个单元,约1000门,芯片总面积为2137.026628,总功耗约为9.1080uW。在集成电路设计中,对系统电路进行设计描述时虽然使用编程语言进

13、行设计,但要始终从硬件电路结构及其实现方面考虑,这样才能使系统设计无论从可行性还是有效性等方面都能得到保证。比如设计者在设计时曾遇到这样一个设计错误:case 语句default ,使用行为级描述时可以让其执行空操作或者延时,可是从硬件角度这是不具有意义的。这是设计时的一个小例子,许多设计问题的出现都是由于设计者过少地甚至漠视硬件电路结构造成的。其次,集成电路设计中验证是重点。随着设计规模的日益增大,验证工作的重要性越来越突出,难度挑战也日趋加大,验证工作在总设计工作的比例初步上升。不可忽视验证的重要性,优化算法思路使验证语句覆盖率、状态覆盖率、转移覆盖率等方面提高,使验证工作尽可能趋于完备,

14、对于设计成功具有极为重要的意义。 十三、Verilog HDL代码/timescale 1ns/10psmodule top_test(); wire clk,rst_n; wire 7:0 abus; wire ale,rbar_n,wbar_n,cs_n; wire pebar_n; wire 7:0 fir_in; wire 7:0 dbus_xio; wire 13:0 hour,mini; wire 20:0 fir_out; wire 15:0 fir_out_sqrt; wire send_data_en; fir_tb Ufir_tb(send_data_en,pebar_n,fir_in); osc_rst Uost_rst(clk,rst_n); TH99CHLS UTH99( dbus_xio, abus, rbar_n, wbar_n, ale, pebar_n, fir_in, cs_n,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号