2015年9月30日 星期三

一開始聽不太懂但是朋友
在跟我講一次之後就懂了


module top; 

wire A, B, C, OUT1, OUT2;
system_clock #400 clock1(A); 
system_clock #200 clock2(B);
system_clock #100 clock3(C);

and a1(OUT1, A, B);
and a2(OUT2, OUT1, C);

endmodule 

module system_clock(clk); 
parameter PERIOD=100; 
output clk; 
reg clk; 

initial clk=0; 

always 
 begin 
#(PERIOD/2) clk=~clk; 
 end 

always@(posedge clk)
 if($time>1000)$stop; 

endmodule 

2015年9月23日 星期三

and

and and andand and andand and andand and andand and andand and andand and andand and andand and andand and and

2015年9月16日 星期三

Verilog 電路設計

Verilog 基礎
module <name> // 模組名稱
 parameter ... // 參數宣告
 port ... // 腳位宣告
 wire ... // 線宣告
 reg  ... // 暫存器宣告

 initial begin // 初始化設定區塊 
 end

 assign ... // 資料處理層級之描述

 ... // 引用較低階模組別名

 always begin // 行為層級之描述區塊
   // 資料處理與指定等描述
   // task與function的使用
 end

 function  // 函數宣告
 task       // 作業宣告

endmodule
Verilog 電路設計

Verilog 與 VHDL 都是用來設計數位電路的硬體描述語言,但 VHDL 在1983年被提出後,1987 年被美國國防部和IEEE確定為標準的硬體描述語言。
Verilog 是由 Gateway Design Automation 公司於 1984 年開始發展的, Cadence Design Systems 公司於1990年購併了 Gateway 公司,Cadence 隨後將 Verilog 提交到 Open Verilog International 成為開放公用標準,1995 年 Verilog 被 IEEE 認可成為 IEEE 1364-1995 標準,簡稱為 Verilog-95。此一標準於 2001 年更新後成為 Verilog-2001。
相較於 VHDL 而言,Verilog 的語法較為簡潔,因此經常被專業的數位電路設計者採用,而 VHDL 的使用族群則有較多的初學者。當我們想學習數位電路設計時,經常會難以選擇要用哪一種語言,因為 VHDL 的書籍與教材似乎比 Verilog 多一些,但是 Verilog 的高階設計電路(像是開放原始碼 CPU 等)則比 VHDL 多很多。
筆者是為了要設計 CPU 而學習數位電路設計的,因此決定學習 Verilog 語言,而非 VHDL 語言。雖然筆者也學過 VHDL 語言,但後來發現 Verilog 相當好,相對而言語法簡潔了許多,因此筆者比較偏好 Verilog 語言。
筆者的專長是軟體程式設計,因此熟悉 C, C#, Java, R, JavaScript 等語言,但由於 Verilog 或 VHDL 都是設計數位電路硬體用的語言,因此與那些軟體語言有某種程度上的不同,其中最重要的幾個特性如下:
  • Concurrent v.s. Sequential
  • Blocking v.s. Nonblocking
  • Delayed evaluations v.s. Delayed assignments
這些特性是在學習 Verilog 語言時,必須要特別注意的,一但能清楚的分辨這些特性之後,您就可以從「軟體設計領域」跨入「硬體設計領域」了,對於筆者而言,這是一件相當令人興奮的事情。