2010年1月18日 星期一

系統層級程式設計簡介與實做

1/18, 2010

由於學長在期末作業的tool kits上出了一點小問題, 所以必須延遲kit的上傳時間. 老師在此感到十二萬分的抱歉, 讓大家無法早一點回家放假.  不過為了讓大家的學習可以有一個比較完美的成果, 還是請大家勉為其難一下.

Kit預計在星期三(1/20)上傳. 星期四(1/21)學長會在4263等各位並且做詳細的說明. 原則上, 假如會正確使用套件以及之前的作業都做好了, 那摸應該只需要2~3天就可以完成了.

無論如何, 這是我們的疏失, 所以作業繳交期限延至1/2/2010.

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

1/8, 2010

期末作業注意事項請在這裡下載: Final Project

由於期末作業套件準備不及, 作業繳交時間延後至1/25晚上12點. 請隨時注意套件上傳的資訊.

過去第四與第五個作業還沒交的組, 可以在1/25前繳交. 已經按時繳交的組該作業加5分.

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



1/4/2010

這是關於Ports/Interfaces的最後的一次投影片, 我引用參考資料裡對階層式通道的例子, 這是要進入實做比較複雜的介面, 如AMBA或者是晶片內網路(NOC- Network on Chip)等的時候你所必須採取的方法.

這也是這學期最後的一份投影片, 我把它跟Ports放在一起. 我在之後會將這學期所有的投影片再做一次總整理, 並且會有一份附帶的講義, 預期在半年後放上來, 請各位同學到時候來下載.

請在這裡下載: Hierarchical Channel

最後提醒各位, 期末作業的套件講解是1/7, 請務必來上課.

最後祝大家學習愉快與順利, 也希望這個課程對大家的未來有所幫助, 更希望有更多資訊系同學能投入到這個領域的研究, 假如我上課有不周全的地方, 請大家到這裡留言, 我會想辦法改進, 這樣對以後來修課的同學會更有幫助.

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



12/31

這是SystemC有關Ports的部分. 這次先上傳一部分.

請在這裡下載: Ports

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

12/28

有許多同學在問第五個作業是什麼, 我記得我在課堂上講很多次了.  就是

第四個作業用OpenESL的Command Line模式再做一遍, 用意在讓各位熟悉ESL工具.

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



12/8

這是SystemC有關Communication的部分. 目前完成的部分是Primitive Channels的部分, 其他的會在之後上課前放上來.

本周的作業是將此次投影片裡有關sc_semaphore的範例的其中一個master module改成用method來實做. 請在12/24前繳交.

這一周除了上SystemC之外, 另外要請同學開始試用實驗室宗胤學長開發的8051 SystemC Simulator. 下周品皓學長也會把對應的GDB也做好. 這是期末作業的最重要的元件之一, 請同學一定要熟悉.

下周會請哲榮上OpenESL的使用, 請同學下載試用. 請在Windows XP或Linux環境下使用.

請在這裡下載: Communication Channel

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

12/1

這是SystemC有關Thread與Method更進一步的介紹, 不過也因為還沒完全寫好, 只算是完成70%, 請見諒.

請在這裡下載: Thread and Method

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

12/1

這是SystemC有關Concurrency, 不過因為還沒完全寫好, 只算是完成70%, 請見諒.

請在這裡下載: Concurrency



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

11/25

這是SystemC有關Main Function以及Module Function的宣告以及大致的實作方式與範例.

請在這裡下載: Structure: Main and Module

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

11/25

這是一份 SystemC的Overview, 講一些有關SystemC的基本概念與元件是開發觀念. 有Example提供大家參考.

請在這裡下載: SystemC Overview

範例程式請在這裡下載: SystemC Overview Program Example

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

11/24

這是有關解釋SystemC如何根據時序(Timing)來進行模擬, 因為所有硬體系統都需要跟時序相關的.

請在這裡下載: Timing

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

11/24

這是有關解釋SystemC的資料型態.

請在這裡下載: Data Types

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

11/23

這是OpenESL的投影片, 主要是說明SCREAM Lab所開發的ESL 整合設計環境(IDE)的使用方式.

請在這裡下載: OpenESL

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

11/23

這是SystemC的安裝教學.

請在這裡下載: Installing SystemC

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

11/22

這是簡單的Verilog與Logic Design教學以及ModelSim的用法.

請在這裡下載這三份檔案:

 Using ModelSim

Basic Logic Design

Verilog Basics

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

10/6, 2009

這是第五回的投影片, 是有關SystemC的概念性簡介:

For SystemC Beginners

請在這裡下載: SystemC Beginners

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

9/29, 2009

這是第四回的投影片, 是有關ESL的整體的概念性簡介:

Basics of ESL Design and Modeling

請在這裡下載: ESL Basics

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

9/24

這是第二回的投影片, 是有關8051的簡介以及工具

請在這裡下載: SCREAM 805,  its toolchain and FPGA Emulator

未來的Topics包含:

Review of Verilog coding and simulation

Basics of ESL Design and Modeling

SystemC coding and simulation

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

HW(60%)+Project(40%). 如期末作業未交或兩個作業(或以上)未交則不及格. 作業必須要能正常執行, 否則視同未交.



課程資料:

主要上課資料: 線上投影片(PDF  格式)

參考資料: 1. SCREAM Lab Blog 

               2. SCREAM Lab Open Source Blog

               3. SystemC From the Ground

               4. The Guide to SystemC

 

假如你們還對此一topic想有進一步的了解, 相關研究所課程的內容如下, 近期會有一個討論串發佈.

Topics:

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

HW and Grading:

1. 10 to 12 presentations

2. 3 projects

如有作業未交或超過3次presentations未準備者則不及格.

課程資料:

主要上課資料: 線上投影片(PDF  格式)

參考資料: 1. SCREAM Lab Blog 

               2. SCREAM Lab Open Source Blog

               3. SystemC From the Ground

               4. The Guide to SystemC

               5. CUDA

               6. TLM

               7. ARM ESL


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

9/22

這是第一回的投影片, 是有關C++, Process與Thread.

請在這裡下載: C++, Process與Thread

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



9/20

ruru: 請將8051 simulator的用法加在品皓底下post的power point裡再傳給我, 請包含如何跟SystemC銜接的方法.  另外我的ESL Basics有幾張圖要畫一下, 我再寄Powerpoint給你.

宗胤:  請將C++/threads/processes的投影片寄給我. 請你寫一份TLM2.0/2.1的投影片. 一月中會用到, 請你12月完成.



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

7/24, 2009

提醒我自己與大家一下, 該上傳了. 我自承有點怠惰, 會趕快把SystemC的部分一點點補上來.

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

6/18, 2009

投影片我改成PDF檔, 請指教. 請負責的同學記得在7月底上傳投影片.

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

我一直覺得SoC設計應該要由資訊系的學生來做才恰當, 但是資訊系的學生一向怕硬體, 為了破除這個問題, 我預計在下學期的大學部開一門選修課, 課名如標題. 英文標題是:

Introduction to Programming and Tools of Electronic System Level (ESL) Design

我寫了第一階段的投影片, 用意在簡介一下ESL的設計觀念. 如下:

Electronic System Level Design Basics

因為是大學部的課, 一些基本的東西還是要含蓋一下, 我又不想把課弄得講太多ESL, 可是實務卻做的少. 所以我計劃有一章是基本工具與知識的介紹, 以便在實做term project或Homework時可以用到. 我把可能需要介紹的東西以及要負責寫的同學條列如下:

1. C++ Basics: Gary

2. Threads: 塞公

3. Processes: 塞公

4. Verilog HDL Basics and Logic Design: ruru

5. HDL Simulator and FPGA: ruru

6. SCREAM 8051 and toolchain: 品皓

7. SCREAM OpenESL: 小龍

8. Computer Architecture Basics: 品皓

這一部分是:



All programming skills you need to know to master SystemC and learn ESL design together with some useful information

請各位就一個不是懂太多的大學部學生為準則, 盡量寫得讓他們看得懂. 順便幫他們複習一下他們過去學過的, 但是對這門課重要的部分. 不過請不要copy你過去學過的書或講義, 務必是你消化後再寫出來的東西比較好.

接下來我會寫SystemC的部分以及請Gary寫一章TLM2.0的部分. 至於OCP與AMBA, 我還在考慮要不要放進來, 但是還是請ruru準備, 反正都是要寫的.

以上請各位有空可以開始寫了, 我希望大家在七月底可以完成四個Chapters的powerpoint, 並且開始寫書的部分.

以上請各位學長與學姐指教, 如能自願幫忙, 感激不盡.

63 則留言:

Buffett 提到...

老師,
投影片可以放ppt格式嗎?
我的電腦太慢,不能灌M$-office 2007
所以不能看唷~

Unknown 提到...

老師 有關
5. HDL Simulator and FPGA: ruru
這是由我寫嘛?
但是好像在投影片中是品皓學長負責
純粹想問一下 我需要負責這部份?

SCREAMLab 提到...

本來是這樣規劃的, 但是我看品皓已經要寫兩部份了, 而HDL規劃給你寫, 所以就把這部份移給你了. 我想, 你現在的工作雖然跟ESL比較相關, 但是既做硬體設計, 底層這方面還是不可少.

long 提到...

SCREAM OpenESL投影片
OpenESL
之前的training course再加一些東西

品皓 提到...
作者已經移除這則留言。
品皓 提到...

SCREAM 8051的投影片
投影片

不好意思弄得這麼晚才放上來。

單車小麥 提到...

'09/09/24課堂ppt中有一段code提到:
struct example{
int a ;
float b ;
char c[4] ;
} ;
上面是一段典型的Data structures用法,因此老師說明struct關鍵字所創建的結構,只能提供資料的存取。class觀念的出現,延伸struct的概念,達到OOP設計。

但在Stanley B. Lippman等所著之C++
primer 4ed 2-8節提出:【The only difference between a class defined with the class keyword or the struct keyword is the default access level: By default, members in a struct are public; those in a class are private.

因此實作下列簡單code:
=================================
struct BaseClass{
int c ;
void setValue(const int &val){ c = val ;}
void print(){cout <<"BaseClass print:"<< c << endl ;}
};

struct ChildClass :public BaseClass{

void print(){cout <<"ChildClass print:"<< c << endl ;}
};

int main(){

cout <<"Program Beginging" << endl ;

BaseClass bc ;
bc.setValue(15) ;
bc.print() ;

ChildClass cc ;
cc.setValue(12) ;
cc.print() ;

system("pause");
return 0 ;

}
=================================
根據VC2008編譯結果,可編譯,並執行。

因此,學生認為ppt所提到的觀念,應隨語言的演進而改變。
小麥

匿名 提到...

請問分組的名單要寄到哪個e-mail?
感謝助教回答
謝謝 : )

SCREAMLab 提到...

小麥:

謝謝你的指正, 我剛開始學C的時候確實是不行, 不過我猜到了C++的時候就順勢做了改變了. 可是我大概一直還保留以前的習慣在寫, 可見習慣真是一個可怕的東西.

投影片裡並沒說那樣不行, 是我說的, 不過我會把這段加進去, 你可以給我出處嗎? 這樣比較好.

分組名單請寄給助教, 助教的email在投影片的作業部分可以找到.

SCREAMLab 提到...

ops! 我看到出處了.

87showmin 提到...

我是個沒看過C++ Primer的偽資工人,因此想請問一些問題。

structure跟class在default access level不一樣是正確的,但既然作者說這是他們唯一的不同,請問作者有無舉例說明如何用structure寫多重繼承? 多形? 建構/解構子概念? 或者實作interface? 就算可以,那為何會有class的產生? 它不正是為了延伸structure的概念,達到更方便的OOP設計嗎?

老師投影片上這句話也許不完全對,我好奇的是C++ Primer作者那句話是完全對的嗎?他話是不是講得太死了 XD

yl 提到...

to 小麥:
請教一下,如果把你的code存成.c ,可以compile過嗎?

如果是存成.cpp,那VC會以C++的方式去compile它,那他就有可能直接把struct當成是class處理


to showmin:
struct的繼承是否可用我不清楚,VC2008的實作也不一定是follow c++ standard
但struct可以用function pointer的方式達到多形的目的,實作interface也不會有問題,linux底層很多這種code
constructor and destructor則得自己實作
我這兒有本 OOP with C的書,有興趣可以來看一下
:)

SCREAMLab 提到...

我記得在課堂下課中間, 我跟可能就是小麥的同學討論過, 小麥有提出在C++ Primer裡作者的看法, 我當時不確定Struct是否可以包含有function object, 不過我直覺覺得Struct應該沒有多種與多重繼承, 誠如showmin所說.

因為假如可以, 那就不需要class了. 至於struct裡的是否可以改成private, 以我粗淺的C程式能力, 應該沒什麼不可以吧! 可以實做看看增加功力, 雖然這算是一個看來無聊又無用的程式. 正如YL所言.

我本來要把powerpoint改一下以對小麥的努力給一點credit, 但是我現在請小麥多努力一下, 因為有人提出疑問了喔!!!

我喜歡這樣子的互動, 可以讓我學一下我所欠缺的知識, 畢竟, 我真正懂的有限, 而ESL這東東又牽扯太多其他的東東了.

不過別讓我嚇到, 我猜ESL或者我在提倡的Mixed-level plu Heterogeneous才是未來. It pays for all the troubles you take.

Keiko 提到...
作者已經移除這則留言。
Keiko 提到...

我偷偷下載了投影片來看,發現我的名字打錯了…不過沒關係,湮滅了我誤人子弟的證據…

最新 C++ standard
C++ 中 class 和 struct 對於 class definition 的差別在於:
1. 對於 member 的 default access level 不同(std.11);
2. 對於 base class 的default access level 不同(std.11.2)。

其不同都在於 struct 是寬鬆的,都以 public 為預設。

@ showmin
是的, struct 都可以做到你講的。

@ yl
C 不會過

剛提到的差異是 class definition 上的,至於其他地方還是有差異的:像是 template 的 parameter list 只允許 class, typename ,無法使用 struct,因為 template 的設計,一開始就沒有打算和 C 相容。

C++ 原本叫做: C with Class 。它的重要理念之一是與 C 相容,不過確實也是有不相容的地方,C++ Standard 的附錄 C 就列舉了 C++ 與 C 不相容的部份。因此為了這相容性,不可能將 struct keyword 拿掉,引入 class 這個新的 keyword ,它所帶來的不只是 parser 要多 parse 一個字,更重要的是其背後的抽象性、封裝性以及滿足人們對於 OO 的期待心理。而且以 Google 上"C++ struct class?"的搜尋,會先冒出一堆兩者的差異、比較的網頁就知道,class 的確辦到了"混淆視聽"的效果 :)

附帶一提:同樣是 Stanley Lippman 的著作, Inside The C++ Object Model,裡頭有一個章節叫做:Keywords, Schmeewords;開頭就是這樣說的:One answer to the question of when, if ever, you should use a struct declaration rather than a class declaration then, is whenever it makes one feel better.

是的,重點在於 struct, class 定義出的 attributes, member functions 是否能符合你的需求期望。兩者的差異在於主觀的感覺: struct 用在 data aggregation,class 用在 Object oriented 或 object based 上。

如果好奇為什麼不在 C++ 內限制 struct 只能宣告一般 aggregation type,不能有 access level 、member function 等能力,其實原因很簡單:只是為了 C 到 C++ 遷移順利。 C++ 草創支出,除了效能是個大家關注的議題之外,什麼時候使用 struct 取代 class 也是常被問起的問題,與其涇渭分明的兩套標準,不如以一貫之,Bjarnet Stroustup 在 The Design and Evolution of C++ 這樣講著:
Maybe we could have lived with two set of rules, but a single concept provides a smoother integration of features and simpler implementation.尤其重要的是,嚴格區分兩者可能使得社群分裂(原文: community would fall into two distinct camps that would soon stop communicating.)

ㄜ,除了上面講的顏色對不對外,你覺得下面的 code 該編譯過還是不過呢?

// Forward Declaration
struct MyClass;

// Definition
class MyClass {
...
};

這應該是一致性問題,還是我們得一定要 compiler 嚴守 langauage 規範,幫我們挑出來呢?

以上很哲學又考古!

MS 雖然很喜歡惡搞別人家的 standard,但自從 Stan Lippman 和 Herb Sutter 到了 MS 後,VC++ 可說是除了 Comeau compiler 之外最標準的 compiler 了(這句是我亂說的,越來越標準是真的),有興趣可以參考:
VC2008 http://msdn.microsoft.com/en-us/library/x84h5b78.aspx

g++ 的話,還請有 list 的人分享一下。

Stan Lippman 以前在 Bell Lab 工作,是第一個 C++ compiler -- cfront 的作者群之一,第四版的新作者 -- Barbara E. Moo 跟 Lippman 是老同事,她和 Andrew Koening合著的 Ruminations on C++ 是經典之作,可惜台灣缺貨,曾經在台北天瓏有短暫出現過,而且是很沒誠意的影印版複刻…

工商服務時間:
C++ 是個很有趣的語言,它與底層接近、又能提供高階抽象能力,而且它很老,學習它有時猶如語言考古學,每次都能看到新東西,讓我不禁汗涔涔、淚潸潸…

老師,這篇可以當教師節禮物嗎?

87showmin 提到...

果然周大師一出馬誰與爭鋒。我一開始是為了支持投影片這種觀念性的講法並沒有錯而回文,卻不清楚兩者之間到底有哪些不為人知的過去(?)。當我執著於「既然兩者只有這點差異為何還需要發展出class」時,殊不知它牽扯出一個程式語言隨著時代在蛻變的過程,感謝大家耐心解說,也辛苦了大師熬夜回這篇文章,其實你應該另闢主題這樣google就比較容易找的到。XD

SCREAMLab 提到...

失禮啦! 我老是忘記你是心還是口.

看來本來struct是要被幹掉的嗎? 不過既然struct原始在C裡希望被當做data aggregation用, 我們應該被class"混淆視聽"嗎? 或者我們就乾脆用class就好?

SCREAMLab 提到...

我贊成showmin的講法, 否則開口的這段回答將在此一課程結束後被遺忘.

google scremlab雖然很容易將screamlab的相關討論串放在第一頁, 但是回應應該不在google之中. 也就不容易找到這麼精彩的回答了.

Keiko 提到...

>> 看來本來struct是要被幹掉的嗎?

不算是要被幹掉,因為一開始就打算與 C 相容,所以不會幹掉,考量是:
1. 要不要引入新的 keywrod -- class
2. 引入 class 後,是否要讓 struct 與 class 不相容,使用兩套 rules。

而後的決定是:引入 class ,class 和 struct 使用同一套 rules (只差別在 default accessibility),而事實也證明 class 帶來令人滿意的效果,不管是心理的、實務上的。心理的上的話,套句 Lippman 的話:你會講 base class 還是 base struct ,雖然只是小小的哲學問題,卻還是得到滿足 : )


>> 不過既然struct原始在C裡希望被當做data aggregation用, 我們應該被class"混淆視聽"嗎? 或者我們就乾脆用class就好?

C++ 期望使用者自決。但我想可以分成兩個層面來看。

先說心理層面:這是個 makes one feel better 的問題。

xxx MyClass {
public:
void func();

private:
int val_;
};

xxx 是 class or struct 都好,因為實際描述 MyClass 行為的是 class body 中的程式碼,而不是 struct 或 class。

另一個層面則比較實務:我想要 struct 或 class 定義出來的型別,其所產生的 object 與 C 是真正相容的,那就得考慮到 C++ 的 object model 和相關運算,簡單來說:要在 C++ 產生跟 C 相容的 object ,你的 C++ 型別必須是個 POD (Plain Old Data),standard 對於 POD 有其定義(std.9),或是上 Google 搜尋都可以看到,偷偷引用 wiki 的描述:
A POD type is a C++ type that has an equivalent in C, and that uses the same rules as C uses for
1. initialization
2. copying
3. layout
4. addressing

對我自己來說,什麼時候會使用 struct:
1. 想產生與 C 相容的 object 時,我會使用 struct 這個關鍵字,因為它帶有我對 C 的遐想 Orz,然後嚴格遵守 standard 對 POD 的規範。
2. 某些型別描述的對象很簡單(不太有(甚至沒有)繼承架構、抽象介面、生命週期短等),使用 setter, getter 又很麻煩時,那我會選使用 struct ,像是:

struct ParserResult {
bool Match;
int lineNo;
};

每個人都可以有自己一套結論!

yl 提到...

那麼.........
在C++裡,class 跟 struct 是可以互相繼承的嗎?

基本上,我覺得struct還是當C語言裡的用法比較單純啦 ...

SCREAMLab 提到...

可以另外開一個串嗎?

果然是一騎擋千的大師:

我另外找到一個與C相容的理由, 那就是非常多特殊應用的processor並沒有提供C++ compiler或者是其C++ compiler並不標準, 那麼當你的code要port過去時, 有點痛苦.

另外在SystemC裡, 我們是鼓勵用template的, 這產生另一個使用上的變因與方便性的問題.

Keiko 提到...

@ yl
可以

老師,如果時間允許的話,我會把相關的資料整理一下的,看是要放在 programming 或是 C/C++ 的 topic 下,給您決定

單車小麥 提到...

提出問題還不到一個禮拜,回應一篇一篇的湧入。
正思考87showmin、yl提出的疑問時,我也試圖尋找答案。
然而,Keiko對於struct、class,所提出的見解,著實令晚輩獲知良多。

附帶一提的是:
Keiko所提到的一個弔詭(Paradox)的code:

struct MyClass;
class MyClass {};

/*
*warning C4099: 'MyClass' : type name first seen using 'struct' now seen using 'class'
*
*是的,可以通過編譯,但會出現如此警告。
*因此將class、struct調換過來如下:
*/
class MyClass {};
struct MyClass;
/*
*錯誤訊息如下:
*warning C4099: 'MyClass' : type name first seen using 'class' now seen using 'struct'
*/

另外附註一提:

struct MyClass{};
class MyClass {};

這段code所產生的錯誤訊息為:
error C2011: 'MyClass' : 'struct' type redefinition

將其對調成:
class MyClass {};
struct MyClass{};
錯誤訊息為:
error C2011: 'MyClass' : 'class' type redefinition

值得注意的是,兩個不同類型,差異在於先後順序的code,所產生的警告、錯誤訊息,號碼都相同。

PS 引述
【Barbara E. Moo,Andrew Koening合著的 Ruminations on C++ 是經典之作,可惜台灣缺貨】
近日,終於在光口對面的若水堂大陸書店找到一本,雖非原文本,而是簡中譯版
些許專有名詞異於繁中版,但仍不失其可讀性。

小麥留

SCREAMLab 提到...

唯中:

我請你開一串新的吧! 然後把這裡的相關問題都移過去, 在那邊討論吧! 這裡還是留給課程的主要議題比較好.

另外, 我不是C++的專家, 就讓您來主持吧!

匿名 提到...

以compiler作為討論標準的工具事實上稍有不妥。無論是Microsoft Visual Studio, GNU GCC或是其他compiler都不見得100%符合標準,更何況是在此種冷門問題上。這種研究方式,較適合作為研究compiler實作,或是了解語言的工具,至於要確定標準規範,還是要閱讀冗長的C++ Standard....(倒)

long 提到...

OpenESL投影片
原版:
OpenESL

去背景版:
OpenESL_NoBackgruond

匿名 提到...

虛擬函數不能使用函數樣版耶!
那麼作業裡要求的virtual store() 不就不能寫成

template \< class T \>
virtual void store(T num){}

了?

品皓 提到...
作者已經移除這則留言。
品皓 提到...

SCREAM 8051 and toolchain
投影片
去背景板投影片

HW2 跑馬燈作業懶人包
懶人包

SCREAMLab 提到...

謝謝品皓與Long.

請ruru回答一下上面同學的問題.

匿名 提到...

補一下點名時單子上缺的字
...林立[堃]

long 提到...

10月29日(四)上課的投影片
有三份Logic Design, Verilog, ModelSim
投影片

匿名 提到...

助教您好  可以請您放VERILOG的TEXTBENCH嗎?

long 提到...

Homework 3 的 testbench
FSM_tb.v

陳哲文 提到...

請問一下作業三的問題
問題:
http://myweb.ncku.edu.tw/~f7496109/result.txt
有圖有真相:
http://myweb.ncku.edu.tw/~f7496109/verilogresult.jpg

long 提到...

SystemC安裝教學
SystemC_Install

long 提到...
作者已經移除這則留言。
long 提到...

你出現的那個error應該是在第二個bit_in的下一個clock的det_out要是1
但是你的結果det_out=0

詳細你自己trace一下投影片裡的
state table和state diagram

long 提到...

你要從reset=1開始看

reset=1時此時是S0,input=0
所以下一個state是S1,output=0

s1時,input=0
所以下個state是S2,output=0

S2時,input=1
所以下個state是S3,output=0

S3時,input=0
所以下個state是S1,output=1

應該是沒有錯

匿名 提到...

欸都
systemC安裝說明檔內有說要用VC開啟的檔案
那這邊能附上VC7的載點嗎@@
感覺找了一些時間找不太到
可以的話麻煩
感謝~~

long 提到...
作者已經移除這則留言。
long 提到...

麻煩請私底下寄信問我
longest2222@hotmail.com

long 提到...
作者已經移除這則留言。
long 提到...
作者已經移除這則留言。
long 提到...

12/17上課的OpenESL安裝與教學
OpenESL安裝與教學

Unknown 提到...

Channels投影片載點
Channels

long 提到...
作者已經移除這則留言。
long 提到...

Communication投影片載點
Communication

pcyu16 提到...

我安裝 PyXML 的時候
setup 在 build extension/pyexpat.c 這個檔案的時候
gcc 跑出來三百多行 error 來罵我..
我看了一下.. 應該是找不到 header file
那些 header 既不是 standard library, 也沒有放在資料夾當中
我找了大概幾十個網頁吧.. 沒看到跟我一樣情形的
所以我就上來問了Orz

環境:
ubuntu linux 9.10
python 2.6.4
PyXML-0.8.4
gcc 4.4.1

先感謝回答

shayne 提到...

開放下載的openESL似乎已經限定在windows下執行?我在linux下要執行時顯示錯誤,出現存取C槽某個檔案失敗的訊息(cmd mode下)

long 提到...

To pcyu16:
我也不知道問題在哪
不過你可以換成用套件管理程式裝看看
系統->管理->Synaptic套件管理程式
搜尋python-xml
安裝 python-xml套件
(套件描述為"XML tools for python"的那個套件)

To shayne:
OpenESL在linux也可以跑
你應該是有缺裝什麼套件

shayne 提到...

我是到這裡載的openesl
http://screamlabopensource.blogspot.com/2009/07/openesl.html
在執行時出現以下錯誤訊息
Traceback (most recent call last):
File "ESLShell.py", line 19, in
from Composition import *
File "D:\OpenESL.0.1.2[2009.07.14]\OpenESL.0.1.2\Composition.py", line 17, in
ImportError: No module named ext
這是因為檔案內容預設使用NTFS路徑八?
看不太出來是因為少了什麼套件.....

shayne 提到...

抱歉 我好像確實少了些套件

另外pcyu16的問題需要載python2.5-dev或python2.6-dev套件解決

pcyu16 提到...

感謝@@ ok了

long 提到...

1/7的期末project投影片
Final_Project

lionking 提到...

想請問 UI 可以用 MFC 來寫嗎?
(我是用 VS2008...)

謝謝!

SCREAMLab 提到...

可以 .

shayne 提到...

請問星期四的時間是同上課時間嗎?

匿名 提到...

所以作業繳交期限延至1/2/2010.

1/2/2010. 那個2是25號嗎

SCREAMLab 提到...

對的, 就是後天(1/21)上午九時十分在4263.

繳交日期期限是2010年2月1日. 當然歡迎提早交.

匿名 提到...

由於第三階段選課日期將近,希望esl的期末總成績能夠儘送達教務處,謝謝!

匿名 提到...

拜託教授上傳成績,不然第三段選課時間就是明天快到了Q_Q...

SCREAMLab 提到...

奇了, 我上周已經把成績交出去了呀!!

我去問一下.