星期三, 11月 19, 2008

Verilog Generated Instatiation

In some case, we require variable number of instances
A example in Standrad: Ripple Adder

module addergen1 (co, sum, a, b, ci);
parameter SIZE = 4;
output [SIZE-1:0] sum;
output co;
input [SIZE-1:0] a, b;
input ci;
wire [SIZE :0] c;

genvar i;

assign c[0] = ci;

// Generated instance names are:
// xor gates: bit[0].g1 bit[1].g1 bit[2].g1 bit[3].g1
// bit[0].g2 bit[1].g2 bit[2].g2 bit[3].g2
// and gates: bit[0].g3 bit[1].g3 bit[2].g3 bit[3].g3
// bit[0].g4 bit[1].g4 bit[2].g4 bit[3].g4
// or gates: bit[0].g5 bit[1].g5 bit[2].g5 bit[3].g5
// Generated instances are connected with
// generated nets: bit[0].t1 bit[1].t1 bit[2].t1 bit[3].t1
// bit[0].t2 bit[1].t2 bit[2].t2 bit[3].t2
// bit[0].t3 bit[1].t3 bit[2].t3 bit[3].t3

generate
for(i=0; i<SIZE; i=i+1) begin:bit
wire t1, t2, t3; // generated net declaration
xor g1 ( t1, a[i], b[i]);
xor g2 ( sum[i], t1, c[i]);
and g3 ( t2, a[i], b[i]);
and g4 ( t3, t1, c[i]);
or g5 ( c[i+1], t2, t3);
end
endgenerate

assign co = c[SIZE];

endmodule

星期五, 5月 09, 2008

VC++ 使用 OpenMP

1) /openmp
2) vcompd.dll not find?
#include "omp.h"

平行化的三種方式
parallel、sections、for

星期一, 4月 21, 2008

VMM Detection

VMM (Virtual Machine Management) 的目的是要架構一虛擬的平台

在真實硬體上未完備之前來讓軟體能在上面執行, 或者能讓一台機器來模擬其它硬體平台

但是接下來會衍生一個問題, VMM能做到完全不被上層執行的軟體發現嗎?

作者引用了另一篇HOTOS的會議論文 --Compatibility is not Transparency: VMM Detection Myths and Realities, 文中的結論是不太可能作到這點

關鍵在於"時間"..... <待續>

星期六, 4月 19, 2008

StreamIt: Multicore Programming Lanaguage

CPU發展的趨勢了幾乎已經確定是Manycore而不是Better core
單一晶片中可能有8個, 16個, 32個... 甚至上千個核心
但是面對如此強大的硬體資源, 傳統的程式語言(Programming Language)可以掌握嗎?
傳統程式語言使採取循序(Sequential)觀點來面對程式
之後有執行緒(Thread)的概念出現,
執行緒的概念是要在單一記憶體空間中同時處理有兩件以上的事情
但執行緒之間有同步以及共享記憶體的問題, 這會造成程式設計師很難撰寫及除錯

StreamIt是MIT在2002年開發的程式語言,
StreamIt採用元件概念來寫程式, 一支程式是由許多Filter構成~
每個Filter會處理輸入串流(Stream), 然後產生輸出串流
每個Filter都是平行在處理自己的串流, 彼此沒有共享資料, 可以很容易達到最佳化的效能
MIT目前有在自校的課程教授StreamIt, 應用的平台是Sony PS3的Cell Processor

星期四, 4月 03, 2008

Software Defined Silicon

Multicore 的應用

定義新的Language來描述I/O, 要用Multicore來取代FPGA?

優勢是Power? Cost?

硬體工程師可能會排斥?

星期一, 3月 31, 2008