3D加速引擎是3D图形加速系统的重要组成部分,以往在软件平台上对3D引擎的研究,实现了复杂的渲染模型和渲染算法,但这些复杂算法与模型在FPGA上综合实现具有一定难度,针对FPGA的3D加速引擎设计及其平台实现需要进一步研究。 本文在研究3D加速引擎结构的基础上,实现了基于FPGA的图像处理平台,使用模块化的思想,利用IP核技术分析设计实现了3D加速管道及其他模块,并进行了仿真、验证、实现。 图像处理平台选用Virtex-Ⅳ FPGA为核心器件,并搭载了Hynix HY5DU573222F-25、AT91FR40162S、XCF32P VO48及其他组件。 为满足3D加速引擎的实现与验证,设计搭建的图像处理平台还实现了DDR-SDRAM控制器模块、VGA输出模块、总线控制器模块、命令解释模块、指令寄存器模块及控制寄存器模块。 3D加速引擎设计包含3D加速渲染管道、视角变换管道、基元读取、顶点FIFO、基元FIFO、写内存等模块。针对FPGA的特性,简化、设计、实现了光照管道、纹理管道、着色管道和Alpha融合管道。 最后使用Modelsim进行了仿真测试和图像处理平台上的验证,其结果表明3D加速引擎设计的大部分功能得到实现,结果令人满意。
上传时间: 2013-07-30
上传用户:lepoke
LDPC(Low Density Parity Check)码是一类可以用非常稀疏的校验矩阵或二分图定义的线性分组纠错码,最初由Gallager发现,故亦称Gallager码.它和著名Turbo码相似,具有逼近香农限的性能,几乎适用于所有信道,因此成为近年来信道编码界研究的热点。 LDPC码的奇偶校验矩阵呈现稀疏性,其译码复杂度与码长成线性关系,克服了分组码在长码长时所面临的巨大译码计算复杂度问题,使长编码分组的应用成为可能。而且由于校验矩阵的稀疏特性,在长的编码分组时,相距很远的信息比特参与统一校验,这使得连续的突发差错对译码的影响不大,编码本身就具有抗突发差错的特性。 本文首先介绍了LDPC码的基本概念和基本原理,其次,具体介绍了LDPC码的构造和各种编码算法及其生成矩阵的产生方法,特别是准循环LDPC码的构造以及RU算法、贪婪算法,并在此基础上采用贪婪算法对RU算法进行了改进。 最后,选用Altera公司的Stratix系列FPGA器件EPls25F67217,实现了码长为504的基于RU算法的LDPC编码器。在设计过程中,为节省资源、提高速度,在向量存储时采用稀疏矩阵技术,在向量相加时采用通过奇校验直接判定结果的方法,在向量乘法中,采用了前向迭代方法,避开了复杂的矩阵求逆运算。结果表明,该编码器只占用约10%的逻辑单元,约5%的存储单元,时钟频率达到120MHz,数据吞吐率达到33Mb/s,功能上也满足编码器的要求。
上传时间: 2013-06-09
上传用户:66wji
第三代移动通信系统及技术是目前通信领域的研究热点。本系统采用了第三代移动通信系统的部分关键技术,采用直接序列扩频方式实现多路宽带信号的码分复用传输。在系统设计中,我们综合考虑了系统性能要求,功能实现复杂度与系统资源利用率,选择了并行导频体制、串行滑动相关捕获方式、延迟锁相环跟踪机制、导频信道估计方案和相干解扩方式,并在Quartus软件平台上采用VHDL语言,在FPGA芯片CycloneEP1C12Q240C8上完成了系统设计。通过对硬件测试板的测试表明文中介绍的方案和设计方法是可行和有效的。并在测试的基础上对系统提出了改进意见。
上传时间: 2013-06-27
上传用户:fzy309228829
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
随着我国通信、电力事业的发展,通信、电力网络的规模越来越大,系统越来越复杂。与之相应的对交流供电的可靠性、灵活性、智能化、免维护越来越重要。在中国通信、电力网络中,传统的交流供电方案是以UPS或单机式逆变器提供纯净不间断的交流电源。由于控制技术的进步、完善,(N+X)热插拔模块并联逆变电源已经非常成熟、可靠;在欧美的通信、电力发达的国家,各大通信运营商、电力供应商、军队均大量应用了这种更合理的供电方案。与其它方案相比较,(N+X)热插拔模块并联逆变电源具有以下明显的优点。
上传时间: 2014-03-24
上传用户:alan-ee
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上传时间: 2013-10-21
上传用户:13788529953
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
上传时间: 2015-01-08
上传用户:lifangyuan12
数字运算,判断一个数是否接近素数 A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value. Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not. Input Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone. Output For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise. Sample Input 10 111 2 110 10 123 6 1000 8 2314 0 Sample Output yes yes no yes no
上传时间: 2015-05-21
上传用户:daguda