顯示具有 Altera 標籤的文章。 顯示所有文章
顯示具有 Altera 標籤的文章。 顯示所有文章

2026年4月29日 星期三

Quartus使用QuestaSim進行模擬設定

1. 確認電腦上都安裝了Quartus與QuestaSim。

2. 點選"Tools" > "Options..."。


3. 點選"EDA Tool Options",在QuestaSim欄位輸入QuestaSim安裝的路徑,我這裡輸入"C:\questasim64_10.6c\win64",輸入完成按"OK"。

4. 這一步設定需要在專案中設定,當專案設定好且RTL code與testbench都轉寫好了,準備開始進行模擬,點選"Assignments" > "Settings..."。

5. 點選"Simulation",在"Tool name:"欄位中選擇"QuestaSim","Compile test bench:"欄位加入專案的testbench.v檔。

6. 設定完成開始模擬之後的結果如下圖所示,改用QuestaSim模擬。


2019年6月29日 星期六

Quartus II 16.1 - 使用parameter參數傳遞時ModelSim無法模擬

(1). 一般描述完電路後會習慣按"Start Compilation"的ICON合成並直接進入ModelSim摸擬,可是當我加入了parameter參數傳遞時,如下圖所示,

會發現載入錯誤的,導致無法使用ModelSim摸擬,將parameter參數傳遞的方式刪除又可以正常使用ModelSim摸擬。

電路:

module Test
#(parameter Width = 1)(
input [Width-1:0] a,
input [Width-1:0] b,
output [Width-1:0] c
);

assign c = a & b;

endmodule


Testbench:

module Testbench;
reg [7:0]a;
reg [7:0]b;
wire [7:0]c;
Test #(.Width(8)) DUT(
.a(a),
.b(b),
.c(c)
);
initial 
begin
a = 8'h01;
b = 8'h00;
#100
a = 8'h02;
b = 8'h00;
#100
a = 8'h04;
b = 8'h00;
#100
a = 8'h08;
b = 8'h00;
#100
a = 8'h10;
b = 8'h00;
#100
a = 8'h20;
b = 8'h00;
#100
a = 8'h40;
b = 8'h00;
#100
a = 8'h80;
b = 8'h00;
#100
a = 8'h01;
b = 8'h01;
#100
a = 8'h02;
b = 8'h02;
#100
a = 8'h04;
b = 8'h04;
#100
a = 8'h08;
b = 8'h08;
#100
a = 8'h10;
b = 8'h10;
#100
a = 8'h20;
b = 8'h20;
#100
a = 8'h40;
b = 8'h40;
#100
a = 8'h80;
b = 8'h80;
#100
$finish;
end
endmodule

(2). 點選"Tools" > "Options"。

(3). 點選"EDA Tool Options",確認ModelSim-Altera欄位路徑後按"OK"。

(4). 滑鼠游標在工具列空白處按"滑鼠右鍵",勾選"Processing"。

(5). 編輯好電路與Testbench,按"Analyze Current File"進行分析與合成電路,

模擬前在Project的Top層圖示按"滑鼠右鍵" > "Settings...",

點選"Simulation",圈選"Compile test bench:"欄位,並加入之前所撰寫好的Testbench。


(6). 按"RTL Simulation"進行模擬。

(7). ModelSim可以正常載入並模擬。


2019年4月14日 星期日

在Quartus II中使用GVIM编辑器

(1). 先安裝好GVIM,之後開啟Quartus II,選擇"Tools" > "Options..."。

(2). 選擇"Preferred Text Editor",在欄位Text editor:選擇"Vim",Command-line:選擇GVIM安裝路徑。

(3). 最後在Quartus II下按新增文件時,就會跳出GVIM编辑器視窗。

2018年9月6日 星期四

Quartus II 16.1 - CPLD燒錄步驟

MAX 系列是INTEL的CPLD,燒錄步驟與FPGA稍有差異。

(1). 點選"Programmer"的ICON。

(2). 點選"Add File..."。

(3). 點選"xxx.pof"燒錄檔後按"Open"。

(4). 勾選"Program/Configure",之後按"Start"開始燒錄。

2018年5月7日 星期一

Quartus II 16.1 - 使用PLL Library IP

(1). 新增一個Project。

(2). 選擇"Tools" > "IP Catalog"。

(3). 在搜尋欄位中輸入"PLL",搜尋到"ALTPLL",點選此IP元件。

(4). IP variation file type選擇"Verilog"語言,之後點選"..."鍵。

(5). 在"檔案名稱:"欄位中輸入存檔名稱,我這裡用"pll",輸入完成按"存檔"。

(6). 按"OK。"

(7). 顯示MegaWizard Plug設定頁面,因為目標板(DE0-Nano)的石英震盪器為50mHz,因此在What is the frequency of the inclk0 input?中輸入"50MHz",之後按"Next>"。

(8). 將Create an 'areset' input to asynchronously reset the PLL、Create 'locked' output,取消勾選,之後按"Next>"。在不需要設定的頁面都直接按"Next>"。

(9). 勾選"Enter output clock frequency:",因為輸出要100mHz因此Requested Settings與Actual Settings欄位不做變更,按"Next>"。如果要輸出 1mHz,Requested Settings與Actual Settings欄位都改成"1.0"。

(10). 取消pll_bb.v的勾選,按"Finish"。

(11). 按"Yes"。

(12). 點選"New",再點選"Verilog HDL File",按"OK"。

(13). 輸入數位電路程式,輸入完成後按"Start Compllation"開始編譯與合成。

module top(
input clkin,
output clkout

);

wire clk_wire;
assign clkout = clk_wire;

pll pll_i(
.inclk0(clkin),
.c0(clk_wire)

);

endmodule


(14). 按"Pin Planner"設定輸入與輸出IO。

(15). 在clkin的Location欄位中輸入"pin_R8",clkout的Location欄位中輸入"pin_B12"。

(16). 按"Programmer",開啟燒錄視窗。

(17). 按"Add Device",目標板(DE0-Nano)上面的FPGA型號為EP4CE22F17C6,因此選擇"EP4CE22F17",按"OK"。

(18). 按"Add File...",選擇output_files檔案路徑下的"xxx.sof"檔,後按"Open"。

(19). 燒錄前確認USB有接上PC,按"Start"開始燒錄。

(20). 因為使用Library IP,我寫Testbench驗證,無法模擬出波形,只好使用示波器驗證。將示波器探棒勾在GPIO_033腳位。

(21). 顯示結果的確是100mHZ。

2017年3月23日 星期四

Quartus II 16.1 - (10) 快速Verilog程式除錯與模擬

依照上述每一次按"Start Compilation"後,需要經過Verilog程式編譯 > 電路合成 > 訊號模擬,需要花費很多時間,下列的步驟只有先分析電路後,直接做RTL模擬,加快程式除錯的時間。

(1). 將滑鼠游標移至工具列,按"滑鼠右鍵",勾選"Processing"。

(2).  增加了工具列的ICON。

(3). 當模組電路與Test bench撰寫好後,點選"Analyze Current File",會將程式存檔,並進行電路分析。

(4). 電路分析沒有出現錯誤,如果有合成過,就點選"RTL Simulation",沒有合成過,就點選"Gate Level Simulation",此時軟體會開啟ModelSim。
       依據上個步驟只有點選"Analyze Current File",分析設計的電路是否正確,哪這一步因該要點選"Gate Level Simulation"。

(5). 最後顯示其電路模擬的波形。
紅線: "x"狀態表示不定值。
藍線: "hi-z"狀態表示高阻抗。
綠線: 0、1狀態表示IO輸出值。
白色虛線: pu狀態表示外部模擬拉高電位。

2015年12月14日 星期一

Quartus II 13.0 - (10) 設定頂層模組

1. 使用滑鼠點選專案FPGA型號,再按"滑鼠右鍵",選擇"Settings..."。

2. 選擇"General" > "Top-level entity:",再選擇頂層模組程式,按"OK"。