2011/1/12
期末Project評分方式請見:
-------------------------------------------------
2010/1/5
期末Project:
期末作業的規範如下:
1. 使用8051當做中央處理的機器,此為模組一,其工作如下:
1.1 接收來自影像輸入模組的資料。
1.2 傳送已處理之影像資料至檔案寫入模組。
1.3 接收來自參數模組織參數決定處理方式,處理動作於接收來自參數模組之訊息後才開始。
1.3.1 如參數為0, 將每一影像pixel亮度加上20
1.3.2 如參數為1, 將每一影像pixel亮度加上20
1.3.3 如參數為2, 將每一影像pixel亮度取sqrt後乘以16
1.3.4 如參數為3, 將每一影像pixel亮度平方後除以256
1.4 通知影像輸入模組可以再輸入下一張影像
2. 影像輸入模組,此為模組二,其工作如下:
2.1 主動輸入一張以YUV格式的影像,檔名由使用者輸入。
2.2 顯示此一影像
2.3 通知模組一來接收影像。
2.4 接收模組一的訊息以示可以處理下一張影像。
3. 檔案寫入模組,此為模組三,其工作如下:
3.1 接收來自8051處理後的影像資料。
3.2 根據使用者輸入之檔名寫檔。
3.3 顯示接收之影像
4. 參數模組,此為模組四,其工作如下:
4.1 使用者輸入處理參數
4.2 通知模組一接收參數並開始處理。
在此,不限定模組織間的溝通通道之實作方式,但是,如果以
1. 一個統一的匯流排(Bus)的方式實做(也就是另外設計Bus為模組五),加學期總分三分。
2. 如果定出Bus 的協定(含Timing Diagram)並實做出Cycle Accurate (CA)的Bus模組,再加學期總分五分。
以上加分機制實施後,以總分為99分為成績上現。
期末作業需含完整報告,並附執行檔,將視報告完整度酌量增加評分。如果只有程式以及可執行之執行檔,將只有期末作業50%的分數。
期末Project期限為11:59:59PM, 1/24, 2011,不再展延。如之前有作業要補交,也請以之為期限,但成績以乘以0.7計。成績將於11:59:59AM, 1/26, 2011公佈在系辦公室公布欄,如有疑義,請在4PM, 1/26, 2011前向助教詢問是否有登記錯誤,之後將不再接受更改。
-------------------------------------------
2010/12/20
這是SystemC有關Ports的部分.
請在這裡下載: Ports
有關SystemC Communication的更詳細解說請見: SystemCBook
---------------------------------------------
2010/12/17
有關8051的簡介以及工具
請在這裡下載: SCREAM 805, its toolchain and FPGA Emulator
----------------------------------------------
2010/12/15
豪文學長說上星期竟然沒有人把8051 Simulator灌起來,所以實在不知道大家的問題是什麼,請大家趕快動作,因為這個作業最困難之處在於環境的設定。程式倒還是其次。
以下是作業要完成的。
1. 使用 8051 ESL/SystemC Simulator,請先在上面跑一個簡單的程式,然後使用GDB來debug。簡易程式如下:
main(){
int i,k,j;
k=1000;
j=1000;
for(i=0:i<k;i++) j- -;
}
請觀察j的值是否對了。請注意,要知道j有沒有算對,除了用GDB之外,還可以有什麼方法呢?
2. 使用學長提供的8051環境。學長已經提供了一個範例,那是用一個8051以外的Module與8051之間進行溝通。 請改寫此一範例,將上述程式的迴圈數改變。也就是k的內含值。此一外掛模組的功能是自鍵盤輸入一整數,再將此一數字傳到8051模組已更改回圈數。
3. 請增加一個模組,將8051計算的每一個j的值傳過去,然後寫入一個檔案。
4. 更改8051之程式,讓它可以接受多次的外部回圈數的設定,並保持第3部分之寫檔功能,直到輸入迴圈數為-1為止。
-----------------------------------------------
2010/12/8
這是SystemC有關Channels的討論與作法
請在這裡下載: Channels
------------------------------------------------
2010/11/17
這是SystemC有關Concurrency的討論與作法.
請在這裡下載: Concurrency
------------------------------------------------
2010/11/16
這是SystemC有關SC_THREAD與AC_METHOD大致的實作方式與範例.
請在這裡下載: Thread and Method
2010/11/3
這是SystemC有關Main Function以及Module Function的宣告以及大致的實作方式與範例.
請在這裡下載: Structure: Main and Module
----------------------------------------------------------
2010/11/3
這是有關解釋SystemC如何根據時序(Timing)來進行模擬, 因為所有硬體系統都需要跟時序相關的.
請在這裡下載: Timing
-------------------------------------------------------------------
2010/11/3
這是有關解釋SystemC的資料型態.
請在這裡下載: Data Types
_____________________________________________________
2010/10/21
這次的投影片是講解更多的範例以便讓同學多了解SystemC的寫法,這個投影片也是一般SCREAM Lab的自己內部訓練用的簡易型資料,在此同時也規定了第二次的作業。
請在此下載: System Beginners
------------------------------------------------
2010/10/19
對不起,借一下版面,今年的專題指導名單為:
1. 李柏毅
2. 陳政澤
3. 陳奇鴻
4. 林俊緯
假如前面四位有人改變心意的話,那麼
5. 柯旻漢
對不起,耽擱大家。並向沒抽到的說聲抱歉。
-------------------------------------------------
2010/10/11
這上星期,我們對ESL的重要性做了一點簡單的介紹,為了讓課程的主要進度可以快一點,所以我要先介紹一點SystemC,此一目前的ESL標準程式語言,等大家做了第一個SystemC作業後,再回頭來講ESL的其他觀念。
以下是SystemC的Overview: SystemC Overview
HelloWorld程式範例如下: SystemC HelloWorld Example
範例程式請在這裡下載: SystemC Overview Program Example
-------------------------------------------------
2010/10/6
作業上傳位址:
ip : 140.116.82.184
port : 21
user:eslcourse
password: scream
--------------------------------------------------
2010/10/5
這學期,我把上課順序調整一下,先講一點ESL的觀念,然後上SystemC的入門,再回來講完ESL。然後再上其他的課程。
這樣做的用意是8051在其他課程已經再上了,我等一下子再上,其用意只是在於補充一點資料以及我的實驗室所在用的 與8051有關的ESL工具。這是有關ESL的整體的概念性簡介:
Basics of ESL Design and Modeling
第二回上課投影片在此下載: ESL Basics
未來的Topics包含:
SystemC coding and simulation
Review of Verilog coding and simulation
SCREAM8051 and its Toolchain
OpenESL
Heterogeneous Simulation Environment
Simple SoC Design, Modeling and Simulation
HW and Grading: 五個, 分別練習 C++/Threads, 8051 coding, Verilog coding, SystemC coding
Term project: Simple SoC Modeling and Simulation Using 8051/ModelSim/SystemC/Verilog
HW(60%)+Project(40%). 如期末作業未交或兩個作業(或以上)未交則不及格. 作業必須要能正常執行, 否則視同未交.
課程資料:
主要上課資料: 線上投影片(PDF 格式)
參考資料: 1. SCREAM Lab Blog
2. SCREAM Lab Open Source Blog
助教的Email: ProdigyJerry@gmail.com
假如你們還對此一topic想有進一步的了解, 可以Google以下的關鍵字。
1. SystemC Simulation Kernel
2. Advanced OpenESL tool development
3. TLM2.X
4. ARM Processor ESL Model
5. Multi-core Virtual Model
6. Multi-core Programming on Virtual Model
7. Multi-core application programming using CUDA
8. Debugging tool for microprocessors
---------------------------------------------------
我一直覺得SoC設計應該要由資訊系的學生來做才恰當, 但是資訊系的學生一向怕硬體, 為了破除這個問題, 我在2009的下學期的大學部開一門選修課, 課名如標題. 英文標題是:
Introduction to Programming and Tools of Electronic System Level (ESL) Design
我寫了第一階段的投影片, 用意在簡介一下ESL的設計觀念. 如下:
Electronic System Level Design Basics
上面投影片的內容還會再更新,但是可以供大家參考。
因為是大學部的課, 一些基本的東西還是要含蓋一下, 我又不想把課弄得講太多ESL, 可是實務卻做的少. 所以我計劃有一章是基本工具與知識的介紹, 以便在實做term project或Homework時可以用到. 以下是幾個重要的Topics:
1. C++ Basics
2. Threads
3. Processes
4. Verilog HDL Basics and Logic Design
5. HDL Simulator and FPGA
6. SCREAM 8051 and toolchain
7. SCREAM OpenESL
8. Computer Architecture Basics
這一些Topics本來有些是同學在其他課程當中就修過了的,但是假如您覺得自己還不夠清楚,請自己加強一下,老師只負責簡單介紹。
這學期的上課資料多半會跟去年的類似,但是我會在做一些資料的修正與補充。而由於8051的部分,我們的工具經過一年的修正,加上專題學長的努力,bugs已經少很多了,也就是期末的作業會進行得更順暢,在此向上一屆的同學說抱歉,也向負責的學長說謝謝。
最後,我發現同學對微處理機與計算機組織的支是還太弱,這是硬體系統設計的基礎,希望同學多自己加強,另外就是8051的使用也是本學期的重點,希望同學在微處理機課程裡多用功。
2010/9/12
以下是第一回的投影片, 是有關C++, Process與Thread.
請在這裡下載: C++, Process與Thread
新版的投影片請在此下載: C++/Process/Thread
10/14要繳交的作業內容在新板投影片裡。
10 則留言:
#include
using namespace std;
int main()
{
int **b = new int*[10];
for(int i=0;i<10;i++)
{
b[i] = new int[10];
b[i][0]=i;
}
delete[] b;
for(int i=0;i<10;i++)
{
printf("%d\n",b[i][0]);
delete[] b[i];
}
int c;
scanf("%d",&c);
return 0;
}
/*
也沒全刪掉...
delete[] b 只影響了 b[0],b[1]而已
Output :
3745464
3739992
2
3
4
5
6
7
8
9
*/
/* CSIE101 F74972215 陳映翰 */
路過回一下
不是"只影響到b[0]跟b[1]" ....這段code 的第一個delete[] b;是刪掉int **b = new int*[10];製造出來的那10個int* 也就是說 之後的printf跟delete b[i]完全是有問題的 會正常是運氣好 記憶體的值還沒被用過 要是值變了也很正常 之後的delete要是砍到別人正在用的位址也可能runtime error
雖然不知道這是哪時在哪遇到的問題 不過我猜是上課或作業相關的...正常的話要先把b[i]一個一個刪掉才可以刪b
然後想要讓系統暫停可以用system("pause"); ...很方便的...
我也路過..
自從開始用 linux 之後發現以前一堆 code 都編不過之後就沒有再用 system("pause"); 這種東西了Orz
int c;
while((c = getchar()) != '\n' && c != EOF);
請看這
第一次作業成績
http://0rz.tw/5STja
OPENESL & 教學投影片位置
http://0rz.tw/sttXe
請看這
第一次作業成績
http://0rz.tw/5STja
OPENESL & 教學投影片位置
http://0rz.tw/sttXe
http://140.116.246.180/course/1202_TLM_8051withGDB.rar
GDB下載網址
1202_TLM_8051withGDB Toolchain
http://140.116.246.180/course/
請問一下這次作業有問題,要寄信給哪位助教??EMAIL又是...= =?
請還是寄給原先的助教。 謝謝!
作業二成績如下
http://ludwig.csie.ncku.edu.tw/members/Longest/ESL_score.xlsx
張貼留言