(原創) 如何自己用SOPC Builder建立一個能在DE2上跑μC/OS-II的Nios II系統 (SRAM精簡版)? (SOC) (Quartus II) (Nios II) (SOPC Bu...

Abstract
之前我已經討論這個主題,不過現在看起來,當時的一些設計仍有改進的空間,所以打算重新加以優化。

Introduction
使用環境:Quartus II 7.2 SP3 + Nios II EDS 7.2 SP3 + DE2(Cyclone II EP2C35F627C6)

(原創) 如何自己用SOPC Builder建立一個能在DE2上跑μC/OS-II的Nios II系統? (IC Design) (DE2) (Quartus II) (Nios II) (SOPC Builder) (μC/OS-II)中,我已經討論過這個題目,經網友FJL提醒,才發現當初的設計雖然可行,不過仍有些缺點:
1.明明只用到SRAM,卻還加上Tristate Bridge與CFI Flash。
2.由於當時功力有限,一些解釋也欠缺完整。

所以決定重新打造一個更精簡的Nios II。若你是Nios II與SOPC Builder的初學者,建議你先依照(原創) 如何自己用SOPC Builder建立一個能在DE2上跑μC/OS-II的Nios II系統? (IC Design) (DE2) (Quartus II) (Nios II) (SOPC Builder) (μC/OS-II)的方式一步一步的建立Nios II,本文僅介紹與前文不同之處。

Step 1:
加入所需的ip

(原創) 如何自己用SOPC Builder建立一個能在DE2上跑μC/OS-II的Nios II系統? (IC Design) (DE2) (Quartus II) (Nios II) (SOPC Builder) (μC/OS-II)比較,因為實際上只用到SRAM,所以只要加入SRAM即可,並不需要Tristate Bridge與CFI Flash。

由於Nios II只使用到100MHz的clock,並不需要另外加上50MHz clock。

nios_lite_sram00

Step 2:
設定Nios II CPU的Reset Vector與Exception Vector

由於現在只有SRAM,所以將Reset Vector與Exception Vector全部設在SRAM。

nios_lite_sram01

Step 3:
更精簡的top module

DE2_NIOS_Lite.v / Verilog

1  /*  
2  (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4  Filename    : DE2_NIOS_Lite.v
5  Compiler    : Quartus II 7.2 SP3 + ModelSim-Altera 6.1g
6  Description : DE2_NIOS lite version for SRAM only
7  Release     : 08/29/2008 1.0
8  */
9  module DE2_NIOS_Lite (
10    input          CLOCK_50,     // On Board 50 MHz
11    input   [ 3 : 0 ]  KEY,          // Pushbutton[3:0]
12    inout   [ 15 : 0 ] SRAM_DQ,      // SRAM Data bus 16 Bits
13    output [ 17 : 0 ] SRAM_ADDR,    // SRAM Address bus 18 Bits
14    output         SRAM_UB_N,    // SRAM Low-byte Data Mask
15    output         SRAM_LB_N,    // SRAM High-byte Data Mask
16    output         SRAM_WE_N,    // SRAM Write Enable
17    output         SRAM_CE_N,    // SRAM Chip Enable
18    output         SRAM_OE_N     // SRAM Output Enable
19  );
20 
21  wire CPU_CLK;
22  wire CPU_RESET;
23 
24  Reset_Delay u0 (
25    .iRST(KEY[ 0 ]),
26    .iCLK(CLOCK_50),
27    .oRESET(CPU_RESET)
28  );
29 
30  SDRAM_PLL u1 (
31    .inclk0(CLOCK_50),
32    .c1(CPU_CLK)
33  );
34 
35  nios_ii u2 (
36    .clk(CPU_CLK),
37    .reset_n(CPU_RESET),
38    // SRAM
39    .SRAM_ADDR_from_the_sram(SRAM_ADDR),
40    .SRAM_CE_N_from_the_sram(SRAM_CE_N),
41    .SRAM_DQ_to_and_from_the_sram(SRAM_DQ),
42    .SRAM_LB_N_from_the_sram(SRAM_LB_N),
43    .SRAM_OE_N_from_the_sram(SRAM_OE_N),
44    .SRAM_UB_N_from_the_sram(SRAM_UB_N),
45    .SRAM_WE_N_from_the_sram(SRAM_WE_N)
46  );
47 
48  endmodule


Step 4:
可順利執行Nios II EDS的Hello World與Hello MicroC/OS-II project template。

完整程式碼下載
DE2_NIOS_LITE_SRAM.7z

Conclusion
若你覺得自己打造Nios II系統有難度,可以考慮使用(原創) DE2_NIOS_Lite 1.0 (SOC) (Nios II) (SOPC Builder) (DE2)(原創) DE2_NIOS_Lite 1.1 (SOC) (Nios II) (SOPC Builder) (μC/OS-II) (DE2),這是一個簡化的Nios II版本,或者參考DE2 CD的reference design。

See Also
(原創) 如何自己用SOPC Builder建立一個能在DE2上跑μC/OS-II的Nios II系統? (IC Design) (DE2) (Quartus II) (Nios II) (SOPC Builder) (μC/OS-II)
(原創) DE2_NIOS_Lite 1.0 (SOC) (Nios II) (SOPC Builder) (DE2)
(原創) DE2_NIOS_Lite 1.1 (SOC) (Nios II) (SOPC Builder) (μC/OS-II) (DE2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值