2009年5月1日 星期五

8051 core - 品皓

====================6/15===========================
整個8051的debugging分成target 8051的debugging stub和host gdb for 8051兩端。
target端這邊,aaa把8051和rs232等電路都焊好了給我,用來download測試程式和debugging stub。目前是先從stub改起,正在參考gdb的範例sparc-stub和aaa之前做的stub。
host端,bbb覺得我對cross compile gdb不夠了解,所以建議我可以先看看現有的範例arm-elf-gdb怎麼編譯出來的。

====================6/02===========================
先大略了解gdb remote debug的部分,還有劃出gdb和8051的架構圖,
debugging stub的位子等。
投影片
====================5/22===========================
與bbb討論了一下關於gdb,gbd debug stub部分可以找aaa拿,
可是目前的gdb好像沒有支援對8051的debug功能。
我目前還在google這方面的問題,可能還要在找老師討論一下...
====================5/15===========================
目前在FPGA上塞入四顆8051 core,放在gary的bus上執行正確。

之前放在gary bus上出現的錯誤,簡單說是initial板子的問題。
因為我是修改以前bus與altera板子連接的程式,altera當時是一個版子一個8051 core,所以如果接兩個8051 core就需要set up兩個板子。當初是包在8051 class的初始化裡面,bus呼叫兩個core就initialize兩個8051,給個index變數判斷其差別。
然而現在xilinx上是一個版子有多個8051 core,只需set up板子一次,所以最後我是用if else去強制讓set up板子的動作只執行一次,改好後可順利執行,只是這方法不太好,我還在和宗胤討論怎麼改。
====================5/12===========================
目前我在FPGA上塞了兩顆8051 core,自己對任一顆做測試結果是正確的,
但是放到gary的bus上卻會出現錯誤,我目前還在找尋原因。

另外,之前關於降低選擇器的複雜度,老師希望能有選擇器 set up time 的數據。
投影片
====================5/05===========================
單顆8051 core已經與gary的bus接起來且執行正確。
====================5/03===========================
終於找到問題了,是8051 c code寫錯了
因為DCT的C程式中會對input data array的pointer作變動,而執行完後等待下筆DCT input data時沒有更新那pointer,導致第二次執行DCT時資料會算錯,然而reset卻又會正確的的情況。
把這問題解決後,DCT已經可以正常運作了。

接下來就是準備和gary的bus接起來。
====================4/27===========================
上禮拜訊號不穩的問題有了另一解,就是降低選擇器的複雜度。
interface在回傳數值的output port前會有一個選擇器,選擇取哪一個memory(ROM, RAM, xRAM)的output作為回傳的數值,降低其複雜度就可以了。

目前DCT程式可以部分正常運作。每處理一筆8x8的data完後,必須reset才可以處理下一筆。
不確定原因,還在debug。
====================4/20===========================
之前memory的資料可以寫入並讀出來,但是總是有部分讀取的數值錯誤,花了不少時間在處理這問題,因為不清楚是寫入時出問題還是讀取時出問題, 加上合成硬體很花時間,讓我debug速度變得好慢...

最後才發現是 xilinx memory的問題,利用xilinx core gen產生的memory,input options原本我是設定成non registered,這會造成write data時memory寫入的data不穩定,之後改成 registered就解決了部份讀取數值錯誤的問題了。

只是因此又多一個問題,input registered會造成讀取data delay一個cycle,也就是說input address後要等一個cycle才會output出對應的data。但是我的8051 core是設定成沒有那一個cycle delay的。

接下來要做的是處理8051 core因為memory delay而執行錯誤的問題。
====================4/12===========================
學長幫我看了一下架構,認為太複雜了
透過範例程式做修改,盡量不要動到其FSM和interface,也盡量不要修改到原本的控制訊號。

我將架構稍作修改後,目前可以將資料寫到memory並且讀出來。
接下來是測試P51的控制。====================4/11===========================
verilog code是寫好了,只是PC端要求回傳數據完全錯誤...。
我目前正在寫test bench,希望到時能由波形圖看出問題,不然我也不知道哪裡出問題。
====================4/6============================
這禮拜主要是熟析xilinx的FPGA和版子與PC端的溝通方式,還有修改我system controller的架構

原本的system controller,也就是altera的版子,是用一個function call與版子溝通,主要參數是兩個array (read data和write data) 和一個cycle數。
array的每一筆data都是按照cycle數的先後排列,write data array的第一筆data就是第一cycle時FPGA的data input,第二筆data就是第二cycle時FPGA的data input,之後以此類推。
read data array則是FPGA的data output,和write data一樣的方式排列。

現在的xilinx版子,是用多個function call對兩個FIFO讀寫,版子再從FIFO取值或者寫入。
PC端與版子的溝通訊號比較複雜,但由於有一個簡單的範例介面,所以我打算用那範例與system controller相接。
====================3/31============================
速度卡在FPGA的原因: 是一個DCT處理需要大約400k的cycle數跑完,
但是function call的限制是一次只能跑大約300 cycle就必須回傳給PC,
我目前設定是一個function call跑256 cycle,呼叫1700次,
這樣會造成時間全浪費在PC與FPGA的溝通上。

由於這是API的限制,所以後來學長給了我另一個FPGA和API就不會有這限制。
為了能使用新的API,目前正在改寫我的verilog code和PC端的程式。
====================3/30============================
目前整個jpeg encoder跑起來的結果是正確的,不過速度全卡在FPGA上,
一個200X200的圖需要大約30分鐘才能跑完。
增加FPGA數量其實並不能加速,因為systemC是單執行緒,所以多個FPGA也不能同時執行。

我接下來的工作主要有三個:
用systemC寫出8051的module,能在openESL上執行。
8051的toolchain,C program可以從keil直接到FPGA上。
Debugging的功能,尤其是能在FPGA上處理單步執行的能力。

其中對於toolchain,我說明一下我目前DCT是怎麼做的。
首先C code要經由keil的C51 compiler處理,需要對變數的宣告作修改
由於我是用xRAM作為share memory,所以讀取的input和計算的結果都必須指定其位值。
譬如將 short datain [64]; 宣告在type = xRAM的address = 0x10作為起始位值,
寫法就須改成absolute memory location的格式:
short xdata datain[64] _at_ 0x10;
如果不指定type和address,則由compiler和linker分配
無論是自己指定或者compiler分配,都可以在output file的Symbol Listing看到。

接下來是程式大小的問題,原本沒任何optimization,我的程式大約3k byte。
由於FPGA的memory大小和試用版的keil有其限制,在compiler設定上選擇適當的optimization
我把程式壓到小於2k byte。

最後compile後產生的output files,我是選擇用hex file作為下載到FPGA的input code,
因為hex的格式比binary還好理解。
hex file更進一步說明是Intel HEX file format,格式為
:llaaaatt[dd...]cc
: Intel HEX record的開頭.
ll 表示這行記錄了多少byte的data(dd).
aaaa 開始的address
tt HEX record type,我只知道00表示data record,01表示end-of-file
dd 就是程式碼了
cc checksum,將這行所有hex number,兩兩一組相加/256。
舉個例子 :10246200464C5549442050524F46494C4500464C33
表示有0x10 byte的data,data我用綠色的標起來了,
起是位值2462,是為data record,checksum = 33。

有了data和其相對應的address,就可以下載到FPGA了。
====================3/26============================
主要在與Gary的配合,和FPGA的記憶體的限制問題。
目前看來Gary的bus和FPGA的溝通沒問題。
至於FPGA的記憶體的限制問題,首先說明一下我目前8051的記憶體配置,
iRAM + SFR = 256*8 bit
ROM = 4096*8 bit (12 bit address)
xRAM = 1024*8 bit (10 bit address)
根據quartus編譯的結果,在FPGA上 total memory bit = 43,008 / 92,160 (47%)
之前這樣DCT程式就夠用了,xRAM也可以不用這麼大,可是如果要符合8051的規格,ROM和xRAM都需要65536*8 bit,很明顯FPGA一定不夠,所以目前就先維持這樣。

至於能不能在FPGA塞下兩個這樣restricked的P51,目前看起來好像可以,
total logic element 46%, total pins 40%, 所以我正在試。

====================3/22============================
關於ACALL指令執行後位子多跳了兩個,我對FSM做了修改。
我修改成PC晚一個ins cycle跳去ACALL的位值,也就是將conj這控制訊號晚一個ins cycle送出。
由於上傳波形圖會糊掉,所以更詳細一點的說明,我有舉範例在投影片裡。

目前跟Gary的TLM bus接起來結果正確,不過也只測試過一組資料。
我會在星期一和Gary多測試幾組。


====================3/17============================
老師點出我兩個處理方法並不正確,首先ACALL那邊,branch到的位值是正確的, 但是經過兩個ins cycle後(因為ACALL需要2 ins cycle)卻改變了。
不可直接對更新PC的地方做修正,因為branch到的位值是正確的。

第二是ALU carry,不應該多設一個暫存器,而是想辦法讓carry在正確的T時間計算。

開完會後的下午,我將ALU的carry問題修改了一下。
原本T=0時controller還沒設定ALU input,ALU就開始動作,計算出錯誤的carry,
同時也送出錯誤的ALU output,只是controller將他檔住。
我的作法是將ALU carry改的和ALU output一樣,只有在T=5的時候才會接收,
其他時間則擋住。

另一個問題是為什麼ModelSim模擬是正確的,然而下載到FPGA跑出的結果卻是錯誤的?
我將FPGA跑出的錯誤資料作紀錄,總覺得似曾相似......
才發現原來我verilog code弄錯版本了,拿成未修改的verilog code去下載到FPGA。

改完後,目前在FPGA板子上已經可以正常執行了,測試了幾個數據都正確。
====================3/13============================
這幾個禮拜主要是將DCT的C code,透過Keil轉成 8051 assemble code,放到FPGA上。
pre-sim階段,透過Keil debugger支援的單步執行,觀察wave的訊號。

這階段遇到的8051 Bug主要有兩個
一個是ACALL執行後位子多跳了兩個,目前的處理方法就是在更新PC的地方多加個-2。

第二個是ALU計算carry值的問題 ,在不正確的T值計算出carry。
T=0時controller還沒設定ALU input就開始動作,計算出錯誤的carry值用於T=4。
目前處理方法是多設了一個暫存器紀錄控制訊號送達ALU前的carry,用於T=4。

這兩個問題處理完後,pre-sim目前DCT測試結果正確。

2009年4月24日 星期五

CD-WAV-MP3-CHROMA-轉檔流程

foobar

轉CHROMA的程式

 

轉Chroma的程式已更新

解決了檔案名稱如果有很多"."所造成的問題

感謝皓鈞幫忙測試

 

注意事項:

1.安裝foobar時,請點完整安裝

2.如果foobar找不到那張專輯的tag,可以先不要轉那張專輯(因為需要手動輸入,會很麻煩)

3.麻煩大家將轉過的CD放在DNA後面的那個箱子(避免轉到重覆的專輯)

 

20090423 附註

1. FTP之前上傳中文檔名會亂掉,我已經修正,我把檔案編碼改成繁體中文,並且改成unicode,所以如果有上傳非英文檔名的檔案時,ftp client要有支援unicode

2. cool edit在處理某些太長的檔名時會有問題,請在Add Files之前,先點選Hide Path

 

我們的目的是將CD音軌擷取出來(WAV)

再將WAV轉成MP3(128kbps)再轉回WAV

而這兩個WAV都需要轉成CHROMA

所以一首歌會有兩個WAV

一個WAV會轉成兩個CHROMA

也就是一首歌會轉成四個CHROMA

 

首先放入CD光碟片後,請開啟foobar

點選 檔案 => 開啟音訊

MWSnap007

點選所放入光碟片的光碟機

MWSnap008

點選尋找

MWSnap009

foobar會自動找到正確的標籤資料,點選更新檔

MWSnap010

接著便可以注意到 原本的CD Trackx都變成歌名了!

請點選擷取!

MWSnap011

編碼預設請點選WAV

新增DSP處理,選擇混合聲道到單聲

MWSnap012

點選左下角的更多設定

輸出檔名中的單個檔案請改成

[%list_index%]_%artist%_%album%_%title%

MWSnap013

接著請點選確定

MWSnap014

選擇資料夾,就可以開始轉檔了!

MWSnap015

轉檔中...

MWSnap016

轉檔結果!

MWSnap017

接著要將WAV轉成MP3(128kbps) 再轉回WAV

我們需要透過Cool Edit去做這件事情

因為foobar預設的基本功能 似乎無法精確的指定MP3的bps

請點選File => Batch File Convert

MWSnap018

請點選Add Files

MWSnap019

請點選剛剛那些從CD擷取出來的WAV File

MWSnap020

請確認New Format中的Output Format為MP3

Format Properties為128kbps,44100Hz,Mono

MWSnap021

請確認輸出的位置,接著請點選Run Batch

MWSnap023

在轉檔成MP3之後,接著要將MP3轉回WAV

一樣的流程

Add Files點選剛剛轉好的MP3 File

MWSnap025

Output Format點選WAV

Format Properties 44100Hz,16bit,Mono

MWSnap026

Output Filename Template請修改為*_mp3.wav

中間有一個Delete source file if converted OK

如果您之後不需要MP3 File的話 可以點選

接著可以點選Run Batch開始轉檔囉!

MWSnap027

請把WAV轉CHROMA的程式和剛剛的WAV File放在同一個資料夾內

接著點選 WavConvertChroma.exe

MWSnap030

轉檔中...

MWSnap031

轉檔完後會產生一堆CHROMA File以及一個FileList.txt

一個WAV File會轉換成兩個CHROMA File

FileList.txt的內容為剛剛所轉檔的檔案列表

這是為了日後要加這些標籤資料匯入資料庫要用的

請大家將FileList.txt重新命名為FileList_自己的ID_日期.txt

總之這個檔名上傳時注意一下不要和大家重複就好

MWSnap032

最後請大家將WAV File、CHROMA File以及FileList_自己的ID_日期.txt上傳 就大功告成了!

 

Nas Server 我已經裝好設定好了

可以透過FTP連線

IP: 140.116.82.199

帳號: scream

密碼: 和186的密碼一樣

請上傳到Public這個資料夾中!

另外請以專輯名稱在Public資料夾內 再創一個資料夾

將專輯的檔案上傳至新建的專輯資料夾內

 

非常感謝大家!!!

2009年4月14日 星期二

Cell 介面

這篇是講BBB學長的graphGen所要用的介面
也是用之前的OpenESL介面來改

介面要修改的部分:

  • repository的讀取
    • 不需要port type
    • 增加property (stateful, load)
    • 沒有版本控制 少一層資料夾與版本判別
  • project存取
    • for component
      • 刪除input/output port、port type、id
    • for diagram
      • 增加兩個property : Core/Duplication
  • diagram介面
    • 增加一個按鈕以供輸入Core/Duplication值

repository的部分 下面是我拿來測試的xml

  1: <?xml version="1.0" encoding="utf-8"?>
  2: 
  3: <Module name="IDCT" version="0.00001">
  4:     <!-- Input ports -->
  5:     <in_port type="data">in</in_port>
  6: 
  7:     <!-- Output ports -->
  8:     <out_port type="data">out</out_port>
  9:     
 10:     <property name="stateful" value="true"/>
 11:     <property name="load" value="400"/>
 12: 
 13: </Module>


比較有問題的是
如何在Yellow Dog Linux 6.1下安裝Eclipse
JAVA SDK的部分 我已經抓到IBM的for ppc64的版本了
Eclipse的安裝也照
http://www.yellowdog-board.com/viewtopic.php?f=29&t=4633
說的下載5個套件 去安裝
可是...裝的怪怪的 現在還打不開
我還要再看看到底裝對了沒

BBB學長看看有什麼地方不對 或是哪裡還要加東西的
再跟我說吧

-----------------------------------------------------------
090414

終於在YDL 6.1下面裝好Eclipse了
可是只有3.2版的
所以出現一些class找不到之類的問題
從897個problem改到現在
還剩4個 好像是新增的method 我再看看要怎麼改

現在是用按鈕來開啟對話框的方式 輸入整個project的"core num"跟"duplication"值 只是...找不到地方讓它顯示
變成說使用者到底有沒有輸入過這兩個值
在畫面上是看不出來的 怪怪的

附上在Yellow Dog Linux 6.1版安裝Eclipse的方法



  • 先從YDL的【新增移除軟體】那邊安裝Eclipse
    除了SDK其他相關的都要裝
    開啟一次 讓他初始化

  • 安裝 IBM JDK
    (因為sun沒有ppc版的 GCC的java又非常慢)
    到這裡
    http://www-128.ibm.com/developerworks/java/jdk/linux/download.html
    要註冊一個IBM帳號
    找 "32-bit" iSeries/pSeries 版本。
    (雖然PS3是64bits 還是要裝32bits版的 不然會超級麻煩 有一些套件怎樣都找不到)
    抓 ibm-java2-ppc-sdk-5.0-9.0.ppc (69.4MB)
    安裝 再建立一個連結
      $ ln -s /opt/ibm/java-ppc-50/jre/bin/java /usr/local/bin
    用which java及java -version檢查 java路徑及版本是否正確

  • 降版本安裝 Eclipse (3.2.2版)
    (搭配6.1的Eclipse有很多問題 很多功能都無法正常運作 所以要裝回6.0版用的)
    到YDL 6.0的repository
    http://ftp.yellowdoglinux.com/pub/yellowdog/yum/6/base/RPMS/ 抓下列檔案
        eclipse-ecj-3.2.2-14.ydl.1
        eclipse-rcp-3.2.2-14.ydl.1
        eclipse-cdt-3.1.2-3
        eclipse-jdt-3.2.2-14.ydl.1
        eclipse-platform-3.2.2-14.ydl.1
    用rpm移除6.1版的 (要忽略相依性)
      $ rpm -e --nodeps eclipse-ecj-3.2.2-14.ydl6.1
      $ rpm -e --nodeps eclipse-rcp-3.2.2-14.ydl6.1
      $ rpm -e --nodeps eclipse-cdt-3.1.2-3
      $ rpm -e --nodeps eclipse-jdt-3.2.2-14.ydl6.1
      $ rpm -e --nodeps eclipse-platform-3.2.2-14.ydl6.1
    再安裝6.0版的 (還是要忽略相依性)
     
    $ rpm -ivh --nodeps eclipse-ecj-3.2.2-14.ydl.1
      $ rpm -ivh --nodeps eclipse-rcp-3.2.2-14.ydl.1
      $ rpm -ivh --nodeps eclipse-cdt-3.1.2-3
      $ rpm -ivh --nodeps eclipse-jdt-3.2.2-14.ydl.1
      $ rpm -ivh --nodeps eclipse-platform-3.2.2-14.ydl.1

  • 安裝GEF舊版本
    eclipse plug-in安裝法
    自己開資料夾把plug-in跟features裡的東西copy過去

2009年4月13日 星期一

Lab 相簿開張

The album is powered by Picasa

http://picasaweb.google.com.tw/wolfgang1791arwen

這個相簿在老師創立wolfgang帳號時就同時建好了,只是一直沒有公開。我發現實驗室的照片記憶已經停留在以前很久了,希望大家在離開這實驗室前都能留下些痕跡。

簡單來說,就是要大家今年別再讓 Lab 旅遊喇掉啦!

2009年4月10日 星期五

建立SCREAM Lab. 研究用的音樂資料庫

2009/4/10

準備就緒了嗎? 可以開始了嗎?

Storage要在那裡呢?

--------------------------------------------------------------------------------------------

首先我要感謝冠廷起頭了一個非常棒的研究, 大家知道, 本來冠廷要做的研究是把一首.wave的曲子跟他的樂譜在時間對起來, 對於像二胡一樣的樂器獨奏這不算什麼, 但是對於複音演奏, 這就有一點難了. 目前冠廷還是先用Bach無伴奏來做, 雖說Bach無伴奏看起來其時是單音的, 不過因為提琴的弓法, 同時可以出現多個音. 對於一些曲子, 他的方法已經可以有不錯的效果, 過一陣子, 在他的畢業論文裡, 我們應該可以看到他的方法加上文森的方法, 可以再現出義崧學長的二胡合成一樣的成果, 只是現在難度更高, 他們合作的成果也更吸引人了.

不過,



無心插柳的結果是, 冠廷順手實做了音樂資料庫搜尋的幾篇論文, 再加上他的努力, SCREAM Lab. 跨進了這個領域. 目前的計劃是用先用.wav來查.wav, 當然也可以用.mid來查.wave以及用.wav來查.mid. 不過, 這種研究需要大量的測試資料. 而資料庫要不就用別人的, 要不就自己建. 網路上雖然多的是.mp3, 不過access人家的.mp3我怕有麻煩, 於是就想自己建算了. 我想實驗室CD不少, 我家裡也有一堆, 而各位應該加裡也有, 所以第一步可以想的就是把這堆CD弄進電腦. 等這堆弄完, 我們做研究有一點名氣, 再去網路上抓.mp3, 免得IFPI來查我們的電腦. 不過要冠廷一個人來建構大的資料庫實在不可能. 所以我請冠廷規劃一下要怎麼做. 以下是他會準備的一些程式:

1. .wav轉Chroma Feature

2. 將1.的Chroma Feature再轉出兩個Feature檔

3. 音樂對應Feature之資料庫, 資料庫也許仿之前的幫師大或黑膠規畫的那麼做.

然後請大家配合做以下的工作:

1.首先請大家使用軟體將CD音軌歌曲轉成. wav與.mp3 個一個file (建議使用foobar2000), 可以從你手上的CD已級實驗室裡有的CD開始.

2. 請將這些.wav 與由.mp3轉回的.wav放在兩個資料夾內

3. 對任一個資料夾, 將我撰寫的執行檔也放在一起

4. 接著請執行我寫好的執行檔

5. 每一個檔案將轉換出chroma files

6. 請將所有的.wav, .mp3以及chroma files上傳至資料庫

我這樣做是要試試壓過的.mp3是否也可以有好的效果. 我會準備HD空間給大家.

好吧! 我再做一個球給keiko, 那就是一旦他的系統弄好, 那麼我們在天涯海角, 只要有網路, 都可以回來這裡聽音樂, 雖說只是SCREAM Lab的人要來聽音樂不必搞這麼大陣仗.

不周之處, 請大家指教.

2009年4月7日 星期二

SCREAM Lab 台北團聚會

對不起.我生病了, 膝蓋又在痛. 這次聚會先取消. 過一兩周再看看.

非常抱歉!

引用 Lab 大當家的話:

四月十日左右, 去台北跟學長學姐聚聚.

畢業的學長姐比較少有人會看到這個 blog ,趁這次機會,把聚會時間地點放在這邊,然後寄出 email 邀請,順便推廣一下!

邀請的人:

  • 秘密:bff
  • 92 級:al
  • 93 級:water, kiki, Royce, bazoo
  • 94 級:mobo
  • 95 級:kiwi, Keiko
  • 其他隱藏在台北的 SCREAMer
    • 有幾位過去的專題生在台北唸書
    • buffett 可能會出沒在台北

時間:

  • 稍稍跟 water 討論了一下,預計是四月十日星期五的晚上!

地點:

  • 聽 mobo 說,老師是台北中山北路的老饕,老師有要推薦餐廳嗎?

SLIM 改版 - ㄚ凡

目前計畫要做的事:

  • 加上用GEF製作的介面

基本上是先拿之前給OpenESL用的介面過來套用

  • 加入component測試環境

就是在我們設計出一個新的component時
系統能依據使用者的輸入資料
建立一個測試環境
提供一組components與待測試的component連接
分別負責餵資料和輸出資料的動作
至於資料是否正確 還是要component的作者自己判斷

--

【加入component測試環境】的實作方式
應該是要分別針對pcm raw data、mp3這些不同的資料型態,先寫好一些測試用的components
使用者只需填好需要設定的資料屬性,系統就能自動連接並產生xml檔,進行單一component的測試

--

目前知道的就是這些
如果還有哪些要注意的地方 或是有什麼問題或建議
也麻煩提出來 謝謝

--
090327

這幾天在改GEF的介面
把學長的GraphGen跟SLIM要用的介面同時修改
下面列的是SLIM的介面需要修改的地方
(從OpenESL介面來改)

  • repository的讀取
    • component的XML描述不同
      • port type只有data/signal兩種
      • port id 應該是只作連接用 是否可以不用讀進來
    • <Property>
      • property有ro_runtime屬性 需要在介面中讓使用者改嗎 要的話就得多增加一個屬性來對應 不然一個屬性沒辦法對應兩個值
      • 沒有版本控制 少一層資料夾也不用做版本判別
  • project存取
    • 還要去問一下 有些xml檔裡有<Config>用來記錄Watchdog是否開啟 有些xml檔則是沒有這個tag  如果要記錄<Config>我想在目錄選單裡加一個頁面來設定watchdog的開啟
    • 還有 在<Filter>裡有<item>似乎是存這個component的屬性 可是有的xml裡沒有這個tag 有的是只有部分屬性 我不太清楚他的作用
    • 連線(buffer)有property要存 ex.type, maxsize

附上一個component的xml

<SMPFilter version="0.1">
  <!-- Filter Spec Here -->
  <!--     One XML should contain only 1 filter spec -->
  <Filter name="freader" version="2.0">
    <InputPort name="control" type="signal" id="0" />
    <OutputPort name="output" id="0" />
    <OutputPort name="read_filename" type="signal" id="0" />
    <OutputPort name="read_progress" type="signal" id="1" />
    <!-- Properties to export (changable)-->
    <!-- default: runtime read only (default true) -->
    <Property name="buffer_size" value="65536" runtime_ro="true"/>
    <Property name="repeat" value="0" runtime_ro="false"/>
    <Property name="filename" value="" runtime_ro="true"/>
    <Property name="read_dir" value="0" runtime_ro="true"/>
    <Property name="filter" value="" runtime_ro="true"/>
  </Filter>
  
  <!-- Filter Property (Java GUI) : parse when Java UI is present-->
  <!--    original Exampleinterface.xml -->
  <Frame name="freader" width="400" height="150">
    <label name="label1" caption="Buffer Size" gridx="0" gridy="0" />
    <textField name="buffer_size" text="65536" fill="horizontal" gridx="0" gridy="1" columnNum="6" />
    <button name="button1" caption="OK" gridx="0" gridy="2" />
  </Frame>
</SMPFilter>


應該還有其它的地方要改  目前我只發現這些
現在關於 repository的讀取 部分已經改好了

project存取 的部分還有些疑惑要去釐清



----------------------------
090407

讀寫project的部分大致上也弄好了

<Buffer from="0:0" from_port="output" id="0" to="1:0" to_port="input" type="default" maxsize="53" />

port id還是要保留  不然SLIM會沒辦法讀取
可是為了讓GEF比較好讀取連線 所以連線兩端的port name還是留在xml中

    <Filter name="freader" id="0" version="2.0" positionX="61" positionY="88" height="98" width="200">
      <item name="buffer_size" value="655360" />
    </Filter>

比較麻煩的地方是當時OpenESL的module裡並沒有property值可讓人修改
但SLIM的component都有property
在儲存project的時候也就要把這些改過的property存起來
這邊我是先找出哪些property有改過
再把他們用<item>這個標籤來存

剩下的部分是在介面中呼叫SLIM

2009年4月1日 星期三

SLIM UML

兩年前也上過凱堂大哥上的UML課程,當時因為SLIM要OPEN出去,所以老師希望我對SLIM做一些UML的diagram和文件。

當初還買了兩本書來看
UML 2.0 學習手冊
這本還不錯,滿淺顯易懂的
UML 2.0 技術手冊
這本就講的比較詳細了

對SLIM的UML有興趣的話,可以下載看看
裡面包含了大多的diagram以及EA的檔案
只是內容可能不太完善或者完美,請大家見諒
下載
當時的投影片
sequence diagram
slim analyzing

2009年3月31日 星期二

ICASSP 2009 Tutorials

以下節錄自系辦寄來的通告信。想問大家有人有要參加的嗎?維城學長說IRCAM的葉中興博士應該會來。

IEEE-ICASSP 2009
國科會全額補助國內學生參加密集課程(Tutorials),請多利用。

本補助原則為先申請先補助,申請從速,額滿時隨時截止。申請者必須具備學生身分。申請請上網填申請表:http://speech.ee.ntu.edu.tw/~RA/tutorial

額滿後主辦單位會通知獲補助之學生及其受補助課程,及補辦課程註冊之程序。補辦註冊時受補助學生需先自行繳交註冊費(每門課程60元美金),待大會結束後請將在會場取得註冊費之正本收據郵寄至國立台灣大學電機二館531室,再由大會發放補助款。(這部份好像最麻煩 = =)

IEEE-ICASSP 2009在4月19-20日3個時段共安排17場密集課程(Tutorials)。http://www.icassp09.com/Tutorials.asp

聽完課後要繼續聽presentations也是可以。

2009年3月19日 星期四

騰雲駕霧程式競賽

睽違已久的趨勢程式競賽又再度出現了,對當時還是大學生的我而言,趨勢的比賽是一個大消息,開口粥大師最近較忙,就由小弟我來代貼有關比賽的資訊。注意!3/24(二) 12:20-13:30 在成大資工4263有舉辦說明會。另外請隨時注意官方blog所公佈的 training course 消息。

以下是資訊來源:

騰雲駕霧程式競賽官網: http://www.trend.org/fd/tabid/66/Default.aspx

騰雲駕霧程式競賽官方 blog: http://www.wretch.cc/blog/trendnop09

騰雲駕霧程式競賽官方 blog: http://keikoblog.blogspot.com/2009/03/blog-post_10.html

image

我們公司辦的比賽,有興趣的人,尤其是學長弟妹可以參加唷!節錄一些重點:

「騰雲駕霧程式競賽」由趨勢科技主辦,IBM生物資訊研發中心協辦,該單位將提供硬體設備贊助。競賽籌備小組自3月10日起將至台北科大、台大、清大、交大等9所大專院校進行巡迴說明…

  • 說明會時間地點

    3/11(二) 12:20-13:30
    北科大
    綜合科館第三演講廳

    3/11(三) 13:00-14:00
    台大
    資工系 102

    3/12(四) 12:10-13:20
    台科大
    IB510

    3/16(一) 12:20-13:30
    中山
    電資大樓 F1001

    3/17(二) 11:00-12:00
    中央
    工五館 207

    3/18(三) 15:00-16:00
    清大
    資電館 127

    3/19(四) 12:20-13:30
    交大
    工三 122

    3/23(一) 14:00-16:00
    中正
    地震館 215

    3/24(二) 12:20-13:30
    成大
    成大資工 4263

  • 報名資格
    大學生、研究生、每隊四人(不多不少唷),可跨校!
  • 報名
    3/20-5/15:將開放網路報名,6月份將安排參賽者接受第一階段的網路遠距教學!
  • 比賽方式
    • 初賽
      7/1:網路公佈題目。
      7/8:00:00 停止收件。
      7/22:公佈入圍名單。
    • 決賽訓練課程
      7/30 ~ 7/31:到趨勢上課!
    • 決賽
      8/18 ~ 8/19:決賽入圍。今年也有可能不會在台北士林劍潭青年活動中心,會改去 IBM 生物資訊研發中心吧?機器都在那邊,或是要很炫的自己遠端 deploy 到伺服器海中,那就不必到現場了!
  • 頒獎
    8/20:頒獎。往年頒獎典禮都蠻有心的,會找飯店,以前有去過晶華酒店,典禮有簡單的點心、可邀請家人朋友、找記者來採訪(不過記者好像都不會來-_-|)
  • 獎項(這好像是最重要的)
    1st:NT$500,000
    2nd:NT$300,000
    3rd:NT$200,000
    4th:NT$150,000
    5th:NT$100,000
    6th ~ 10th:NT$50,000
    預聘書現在只給前三名了
  • 題目
    好像沒提到,但是跟雲端運算有關就是!
  • 競賽網站
    http://www.trend.org/fd/tabid/66/Default.aspx
  • 附註
    比賽中會需要各式各樣的人,寫 UI、寫程式、寫文件、上台 presentation、找 bug、做 testing 都會,所以記得要把團隊技能平均問題,不要只點某一、兩樣技能唷!

我是工作人員,不管有什麼疑難雜症、難以啟齒需要匿名的問題,我都可以代為傳達唷!