转置型FIR实现

本文详细介绍了如何设计一个基于单口SRAM的转置型FIR滤波器,采用半并行结构,设计目标包括并行程度和串行程度的可配置性,以及支持负数的补码数据类型。文章通过参数表、端口列表和系统结构阐述了设计细节,包括输入、计算、输出和控制四个部分。此外,还深入探讨了输入模块、串行处理单元和控制器的子模块设计,其中控制器通过状态机控制整个系统的运行。
摘要由CSDN通过智能技术生成

本文首发于个人博客

1.设计目标

设计基于单口SRAM的转置型FIR,半并行实现,要求满足:

  • 并行程度与串行程度参数可配置
  • 数据位宽可配置,支持负数,负数为补码类型

2.参数表

名称 默认值 说明
PALL_PAM 4 并行阶数
PALL_PAM_LOG 2 并行阶数LOG值
SERI_PAM 4 串行阶数
SERI_PAM_LOG 2 串行阶数LOG值
DATA_WIDTH 16 数据位宽

3.端口列表

3.1.系统端口

名称 类型 位宽 说明
clk input 1 系统时钟
rst_n input 1 系统复位信号,低有效

3.2.配置端口

名称 类型 位宽 说明
cfg_valid input 1 配置有效信号
cfg_addr input PALL_PAM_LOG*SERI_PAM_LOG 配置地址
cfg_data input DATA_WIDTH 配置数据

3.3.数据端口

名称 类型 位宽 说明
din_valid input 1 输入有效信号
din_busy output 1 输入忙信号
din_data input DATA_WIDTH 输入数据
dout_valid output 1 输出有效信号
dout_busy input 1 输出忙信号
dout_data output DATA_WIDTH 输出数据

4.系统结构

4.1.结构框图

在这里插入图片描述

该FIR共分为四个部分:

  • 输入部分:输入寄存器和单口RAM,用于控制输入端口信号,实现数据输入
  • 计算部分:由多个串行单元组成,每个串行单元 串行计算,多个串行单元之间并行计算
  • 输出部分:输出寄存器,用于控制输出端口信号实现结果输出功能
  • 控制部分:产生时序控制信号,控制输入部分、计算部分和输出部分的运行

4.2.系统算法

以一个六阶的FIR为例,并行度为2,串行度为3(每个串行处理单元串行处理3个乘加操作),整体有以下数据流:
c y c l e 0 1 2 3 4 5 6 7 i n p u t x ( 0 ) x ( 2 ) x ( 4 ) x ( 1 ) x ( 3 ) x ( 5 ) x ( 2 ) x ( 4 ) P E 1 h ( 5 ) x ( 0 ) h ( 3 ) x ( 2 ) h ( 1 ) x ( 4 ) h ( 5 ) x ( 1 ) h ( 3 ) x ( 3 ) h ( 1 ) x ( 5 ) h ( 5 ) x ( 2 ) h ( 3 ) x ( 4 ) P E 2 h ( 4 ) x ( 0 ) h (

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值