1、 集成电路设计集成电路设计 课程设计报告课程设计报告 题 目: E1 数据存储和读取 院 系: 电子工程学院 专业班级: 学 号: 姓 名: 导师姓名: 报告日期: 1 1设计概述设计概述 E1 数据存储和读取数据存储和读取 1.11.1 设计任务设计任务 本设计用电路实现把输入的 E1 数据码流 0 到 31 数据顺序写入双口 RAM 中, 以字节的 形式输入,时钟频率为 256KHz,并以 0 到 31 循环写,然后把数据分为 4 组,即: 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 1
2、9 23 27 31 每组以 64KHz 频率按 31 到 0 的顺序均匀循环连续输出。 1.21.2 设计目的设计目的 本设计主要实现 E1 数据的存储和读取,实现通信系统中数据的转换和传输。这里我们 只涉及到一路的 E1 数据流。 1.31.3 使用软件及环境设备使用软件及环境设备 本设计主要在 windows 环境下实现详细设计,在 lniux 环境下实现仿真,综合和 STA。 使用的软件如下 1)Modelsim6.1 实现 V erilog HDL 语言的设计和仿真。 2)Synopsys 公司的软件有: NC-V erilog 实现功能仿真和时序仿真; DC 实现逻辑综合; PT
3、实现静态时序分析。 2 2设计方案设计方案 本设计要求完成 E1 数据的存储和读取。根据要求,我们绘出顶层框图。 图 17 顶层框图 引脚 功能 clk 系统时钟设定为(4096MHz) rst 系统复位信号 E1 输入数据,一位二进制位 Data_out7:0 E1 数据输出,八位二进制位 表 9 top 引脚定义 3 3设计定义设计定义 根据设计需求,本设计共分为: 时钟模块(div) :用来提供整个系统中的各种时钟信号; 数据转换模块(data_change) :将串行数据转换为 8 位的并行数据,便于存储了转发; 双口 RAM 模块 (ram_double) : 用来存储数据流中的数据
4、, 双口 RAM 便于存储和读取, 此处我们设计的 RAM 的读写使用的是一个时钟,即同步的 RAM; 读地址模块(rd_add) :用来提供读取数据的地址,从 RAM 中读出要输出的数据; 写地址模块(wr_add) :用来产生存储到 RAM 的地址; 数据选择模块(choice) :用来产生分组信息,将相应的数据按要求存放到相应的 FIFO 中; FIFO 模块:将数据存储按要求分为四组,FIFO 用来存储这四组数据; 比较输出模块(compare) :将 FIFO 中的数据按照要求顺序输出。 共八个模块。 模块结构关系如下图所示: div Rd_add Ram_double wr_add
5、 Data _cha nge choice comparefifo3 fifo0fifo1 Fifo2 rst Wr_en Rd_en Wr_en Rd_en Rd_add5:0 wr_add5:0 Data_out7:0 Q7:0 rst flag Data37:0 Data27:0 Data17:0 Data07:0 Full3:0 Full Full Full Full Q7:0 Q7:0 Q7:0 Data_in07:0 Data_in17:0 Data_in37:0 Data_in27:0 flag clk rst Q7:0 Q7:0 Q7:0 Rst Clk Data_out7:0
6、 E1 clk_512 clk_2048 clk clk_256 3.13.1 分频模块(分频模块(divdiv) 功能描述:本模块完成系统时钟(4096MHz)的分频,分别产生 2048MHz,512MHz, 256MHz 的时钟。 电路设计框图: Add0 Mux21 Equal A2:0 B2:0 dataA2:0 dataB2:0 B2:0 A2:0 out2:0 out2:0 out2:0 D clr set D Q Q D clr set DQ Q D clr set DQ Q 3b0 clkclk rstrst Clk_2048 3b1 ClkClk_ _256256 3d7 ENA Clk_512 图 1 分频模块框图 引脚定义: div 模块 引脚 功能 I/O clk 主时钟 I rst 复位信号 I clk_2048 二分频时钟 O clk_512 八分频时