Can C beat RTL?
http://www.edn.com/article/457428-Can_C_beat_RTL_.php
With the appearance of higher speeds and more DSP macrocells in low-cost FPGAs, more and more design teams are seeing the configurable chips not as glue but as a way to accelerate the inner loops of numerical algorithms, either in conjunction with or in place of the traditional DSP chip. There’s a problem, however. You code for a DSP chip in C, and you implement it using a conventional software tool chain with familiar software debugging tools. You configure an FPGA starting in Verilog or VHDL (very-high-speed-integrated-circuit-hardware-description language)—superficially similar to C but in practice profoundly different—and you implement it using a hardware design flow. The two approaches require different skills.
Enter ESL (electronic-system-level) tools. An ESL synthesis tool lets you write your code in C, automatically synthesize RTL (register-transfer-level) logic from the C, and then feed the RTL into your FPGA flow. In reality, such tools meet with skepticism because people suspect them of poor quality of results, unreliability, and other vices. Is that assessment fair, though? BDTI (Berkeley Design Technology Inc) wanted to find out.
The company last month released the first results of its certification program for high-level synthesis tools. The first evaluation covers AutoESL’s AutoPilot and Synfora’s Pico. The bottom line in BDTI’s findings was that both tools produced results in a reasonable amount of time and that both performed much better than software on a DSP chip. The tools were comparable in density and performance with hand-coded RTL. The fine print reveals a wealth of information below that level, however.
Unsurprisingly, both ESL vendors produced designs with about 40 times the throughput of the best BDTI engineers could do on a Texas Instruments DM6437 DSP chip. Surprisingly, in a separate test with a smaller design, results from the ESL flow
相关文档:
问题描述:
C#程序,里面copy了许多原来的代码,所以参差不齐的,很难读,如何才能让代码自动排齐,就象VS 6.0中可以使用快捷键,非常方便.
解答:
ctrl+a,先全选
ctrl+k,ctrl+f,自动排列
或者
ctrl+a,先全选
alt+F8 自动排列 ......
C的static的用法:
1.对于函数里的局部变量,改变的是它的生存周期,这个变量会一直存在,到程序结束. 函数外部访问不到这个变量.
2.对于全局的变量,改变的是它的作用范围,这个变量只在本文件内有效.其它的.c文件看不到.
当然它的生命周期是和程序一样的 ......
快速幂取模理论基础: 计算 a^b mod c ?
由(a x b) mod c=((a mod c) x b) mod c.
我们可以将 b先表示成就:
b=at2^t+at-1 2^t-1+……a02^0. (ai=[0,1]).
这样我们由 a^b mod c=(a^(at2^t+at-12^t-1+…a02^0)mod c.
然而我们求 a^(2^(i+1)) ......
非时尚●2010新款 宫廷复古罗马鞋真皮凉鞋舒适平底鞋女鞋
189.0元
一个由C/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。
2、堆区(h ......
C语言中的运算符及优先级是很重要的,一定要烂熟于心!
优先级 运算符 含义 要求运算对象个数 结合 1 ()
[]
->
. 括号运算符
下标运算符
结构体成员运算符 ......