扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:谢启东编译 来源:天极开发 2007年10月27日
关键字: Linux
#include "fir8.h" #define ST_DECR 1 #define ST_INCR 0 void fir(short *X, short *H, short *Y, short N, short T) { int n, t, t8; WR x, h, y; t8 = T/8; WRPUTINIT(ST_INCR, Y) ; for (n = 0; n < N; n++) { WRGET0INIT(ST_INCR, H) ; X++ ; WRGET1INIT(ST_DECR, X) ; WRGET0I( &h, 16 ); WRGET1I( &x, 16); FIR_MUL(x, h, &y); for (t = 1; t < t8; t++) { WRGET0I(&h, 16); WRGET1I(&x, 16); FIR_MAC(x, h, &y); } WRPUTI(y, 2) ; } WRPUTFLUSH0() ; WRPUTFLUSH1() ; } |
/* 包含特定的扩展指令头文件 */ #include "fir8.h" #define ST_DECR 1 /* 减量指示器 */ #define ST_INCR 0 /* 增量指示器 */ /* 为FIR ISEF 指令调用定义宏 */ #define FIR(H, X, h, x, t8, y) \ { \ int t8m1 = (t8)-1; \ WRGET0INIT(ST_INCR, (H)) ; \ (X)++ ; \ WRGET1INIT(ST_DECR, (X)) ; \ WRGET0I( &(h), 8 * sizeof(short) ); \ WRGET1I( &(x), 8 * sizeof(short) ); \ FIR_MUL( (x), (h), &(y) ); \ \ for (t = 1; t < (t8m1); t++) \ { \ WRGET0I( &(h), 16 ); \ WRGET1I( &(x), 16 ); \ FIR_MAC( (x), (h), &(y) ); \ } \ WRGET0I( &(h), 16 ); \ WRGET1I( &(x), 16 ); \ FIR_MAC( (x), (h), &(y) ); \ } /* * - 在ISEF中,FIR使用8倍乘法循环优化 */ void fir(short *X, short *H, short *Y, short N, short T) { int n, t, t8 ; WR x, h, y1, y2, y3, y4; t8 = T/8 ; WRPUTINIT(ST_INCR, Y) ; /* 起始输出流 */ FIR (H, X, h, x, t8, y1) ; /* x * h + y => y1 */ /* loop ((N/2)-1) times */ n = 0; do { FIR (H, X, h, x, t8, y2) ; /* x * h + y => y2 */ WRPUTI(y1, 2) ; /* 输出(y1)结果 */ FIR (H, X, h, x, t8, y1) ; /* x * h + y => y1 */ WRPUTI(y2, 2) ; /* 输出(y2)结果 */ } while ( ++n < ((N>>1)-1) ); FIR (H, X, h, x, t8, y2) ; /* x * h + y => y2 */ WRPUTI(y1, 2) ; /* 输出(y1)结果 */ WRPUTI(y2, 2) ; /* 输出(y2)结果 */ WRPUTFLUSH0() ; /* 清除输出流 */ WRPUTFLUSH1() ; /* 清除输出新 */ } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者