Chip123 科技應用創新平台

標題: Altera Cyclone II (EP2C35F672C6)燒錄 [打印本頁]

作者: difgor0426    時間: 2008-3-6 11:03 AM
標題: Altera Cyclone II (EP2C35F672C6)燒錄
剛拿到這塊kit,寫了一個測試sw跟led5 o" J$ \/ p0 X! i
//==================================================//
1 {9 s% X* G% v( U`timescale 1 ns/1 ns- u4 P- F: Q/ q+ k

, N% K( ~) \" ^! ^! i8 e0 F" X  module  test_001(# m" y0 t* B, E3 b
                   D,
- a  d. V" h6 x, a/ F                   Q,! K6 T2 w- F3 S$ A
                   clk,9 I  l3 V6 f; [1 R8 s8 t8 R2 {
                   reset,/ D. h, v" I, s) l. e
                   QB: C+ v  ?# V1 g$ s
                   );5 d" _2 K: v" I4 s
input   reset, clk;6 E- V; J4 Q# b* Q6 [+ K
input   [3:0] D;
. e# N7 z& N8 ?; i# zoutput  [7:0] Q;; f" ?% L5 ^+ _  G
output  [7:0] QB;
; k* u5 c6 ~( |) O. l; o9 f) e& E( Zwire    [7:0] Q;3 N- c% }& L2 v# t
wire    [7:0] QB;2 F$ S, l; Z/ J7 x! B2 y
reg     [7:0] X;
' j4 @2 o( @0 q; H& `reg     [7:0] a;6 e. ]# m2 d& S4 ?/ ^+ F- f( [, M' C
) ]4 B7 t$ k: O" F. A2 d

) N8 @4 `5 H3 D& E2 v- u4 C9 ~, h. I: B  S# K) R' M
& S2 [7 T; ]' r) Y# Y! H
always@(D)6 q/ o. H8 Q1 V- x
  begin
0 {' v% h( a2 R+ z5 f. z+ g         case(D)8 W% c( r$ n3 ~, D6 \# Z
             4'b0000   :  X = 8'b0000_0000;5 P6 K. s: k3 J! ]" V* l- g  _% Q9 E
             4'b0001   :  X = 8'b0000_0011;
. w1 o; Y# K0 ~3 R             4'b0010   :  X = 8'b0000_1100;& o  c7 I: z' U  h% j
             4'b0100   :  X = 8'b0011_0000;
. P0 B- s2 L' f! K  L/ [4 C+ L& w  p             4'b1000   :  X = 8'b1100_0000;# E& U1 t8 C" Y* \
             default   :  X = 8'b1100_0011;
$ d4 H$ R9 g" P# [% z; y$ ~! y         endcase   
0 ?. d3 D/ K2 u0 y8 ^' A  end             1 N9 e7 J& r% L- k
  ( `4 Y+ c( |0 N) t4 v* g' c
assign  Q =   a;
' X: r8 I1 C9 vassign  QB = ~a;
% P6 C' m3 S6 [, C             " v1 ?4 M! y5 t) Q- ~- ~, v: s$ [
always@(posedge clk or negedge reset)
8 N; {4 q$ k* A. M# E0 O2 t$ D/ C  begin) R' C4 d7 T1 H* _- p: |. B( `
     if(!reset)
* {$ }; f2 V% p; {' z. f          a = #1 1'b0;8 Z- b- h* v; i9 h
     else
; Y' Q2 H+ D: r: V' k          a = #1 X;
6 @' q3 i4 M6 s( k1 I0 C  end                                  # F  ]  n' {2 a3 p" e$ O9 P
   
9 t! O: l. p/ v! K4 c! F% d7 U  endmodule/ r! `  G, D' J* u
//===========================================================//
0 o  W  w6 Q6 X( e5 f4 `% c然後以下是Quartus產生的qsf檔。
0 T/ h% s8 d& M8 ~) D! U. B//===========================================================//
) ~" L& k1 I: @) E' ]# Copyright (C) 1991-2006 Altera Corporation
- m2 x* M, X/ ~; D7 k8 @& v" S8 H# Your use of Altera Corporation's design tools, logic functions
( N$ l, k# y/ X2 t4 d. T% Q# V# and other software and tools, and its AMPP partner logic " v$ ?. E$ E/ q+ q, u8 p% U
# functions, and any output files any of the foregoing / y9 \. d3 I9 [1 p+ ?; u. p5 |
# (including device programming or simulation files), and any
  s# N. c" I3 D/ s/ J' |1 T2 k# associated documentation or information are expressly subject
# z: }  {) N% e& D  ^: n+ k% ~0 H: g# to the terms and conditions of the Altera Program License 7 N8 N- S  O& t3 s) p3 m
# Subscription Agreement, Altera MegaCore Function License
' v, u1 p: c4 Y# B. T# Agreement, or other applicable license agreement, including, # E5 Z" i$ B  B) ^9 D4 o2 @, h& x
# without limitation, that your use is for the sole purpose of 0 V  p, u+ Q2 S" p
# programming logic devices manufactured by Altera and sold by - A! X4 k8 V5 g, a5 Q/ l& F- u
# Altera or its authorized distributors.  Please refer to the
# p, D- F7 `( k$ G# applicable agreement for further details.' ?- z1 b% @3 l, Y2 ]& N) w

( t1 R: r! }) I* N  z2 R7 ~$ d9 q8 `7 V) q6 ^' k
# The default values for assignments are stored in the file8 R$ V; i8 X4 \( Q: q# B4 {3 y8 `
#                test_001_assignment_defaults.qdf
# D, I! l, X; x- {% n: c& G* E# B, n# If this file doesn't exist, and for assignments not listed, see file
: f1 s+ v4 J- {0 o  J#                assignment_defaults.qdf0 w& @. N* y7 t7 c3 D
* x& J* D2 P/ l1 Y1 C( ~- z
# Altera recommends that you do not modify this file. This  g$ o# i( w& C; e1 m
# file is updated automatically by the Quartus II software5 O, c8 f' z' {
# and any changes you make may be lost or overwritten.: @, Y* s* u; d
7 _$ V" J" M3 c1 d3 X9 k

9 s! a6 D9 e: b: h4 O- J' Eset_global_assignment -name FAMILY "Cyclone II"6 c' W, T! \3 I
set_global_assignment -name DEVICE EP2C35F672C6
& Z& }$ n% ~2 g- R& B2 H' k8 u  |5 `set_global_assignment -name TOP_LEVEL_ENTITY test_001; _& R- X/ B  {8 R0 e* c( l
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 6.0
# W0 w2 {- x! |8 n5 G. vset_global_assignment -name PROJECT_CREATION_TIME_DATE "09:57:03  MARCH 06, 2008"
- \5 h1 |. b/ B. x& }" mset_global_assignment -name LAST_QUARTUS_VERSION 6.0
( x3 P& L) B& N$ |; o' T; Oset_global_assignment -name USER_LIBRARIES "D:\\Altera II\\970305\\test\\1/"$ z0 O' Y6 B9 R( k0 R. \' _5 D  `
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 6723 B7 o) {' h; V5 H: m% [3 A% c* I
set_global_assignment -name VERILOG_FILE old_test_001.v
+ C$ k1 G% g- G) [, x  K$ nset_location_assignment PIN_Y11 -to D[0]. s) s9 P8 H8 x- N# w0 O. a
set_location_assignment PIN_AA10 -to D[1]0 \  r+ T/ f/ [9 J/ Z% A! E
set_location_assignment PIN_AB10 -to D[2]
3 x, t  V5 [8 ^3 i( E) \1 R9 Bset_location_assignment PIN_AE6 -to D[3]& v# X, `% ], u
set_location_assignment PIN_AC10 -to Q[0]; k6 _( K0 [" `
set_location_assignment PIN_W11 -to Q[1]' M* U# i1 e# u2 R# O
set_location_assignment PIN_W12 -to Q[2]' `$ K$ n: ~9 X! G8 G& t
set_location_assignment PIN_AE8 -to Q[3]
: p; K) M& T( d) A1 n% qset_location_assignment PIN_AF8 -to Q[4]. Z$ l4 M6 z% d1 x7 P! o( }# [
set_location_assignment PIN_AE7 -to Q[5]/ W5 d4 _3 }/ p3 d. G+ ?7 L# Y# [
set_location_assignment PIN_AF7 -to Q[6]) r: P5 O/ P# \, Y- _
set_location_assignment PIN_AA11 -to Q[7]
' t, a' l$ p0 ]" Dset_global_assignment -name SIGNALTAP_FILE stp1.stp
% p# n$ i' W. |set_global_assignment -name ENABLE_SIGNALTAP ON7 b% o& F7 H/ ~( f9 P
set_global_assignment -name USE_SIGNALTAP_FILE stp1.stp: I3 l5 l) W! |
set_location_assignment PIN_M21 -to reset: q, ]# v. `" B
set_location_assignment PIN_P25 -to clk
* d# I1 n5 ~- S% U7 X$ K: F0 tset_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "Design Compiler"5 p& a- ~. C1 Q" @) k% ?
set_global_assignment -name EDA_INPUT_VCC_NAME VDD -section_id eda_design_synthesis; t2 t# R$ E& h7 d5 v& P
set_global_assignment -name EDA_LMF_FILE altsyn.lmf -section_id eda_design_synthesis$ [2 i$ l. G1 x+ Y2 C; m
set_global_assignment -name EDA_INPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_design_synthesis  P: O) `* u4 ]7 X4 L. X, |
//=================================================================================================//8 r5 X: d; |! c; A8 t
我的問題是,不知道為何怎麼樣都燒不進kit裡,6 i8 p( ?0 l2 A2 \5 N* v4 n  V4 l2 M' ^; k
已經排除並非JTAG跟KIT的問題!. u& E! D' p2 W4 O) f
請各位先進一起來分析一下!

作者: ikki    時間: 2008-3-6 11:10 AM
把programmer的錯誤訊息post出來看看, 光看qsf, 無法知道program的問題....
作者: difgor0426    時間: 2008-3-6 11:13 AM

4 v1 d2 ^/ g% u: d, ?2 e只有WARNING
3 @; N$ l# P) q, [% a; n: I$ M沒有ERROR
# i$ D  f4 [1 [$ Y8 y8 A) q這就是我感到奇怪的地方

作者: ikki    時間: 2008-3-6 12:02 PM
所以是有成功??6 M" c; W' f* `( C7 @
不然把program的畫面抓下來看看..
作者: difgor0426    時間: 2008-3-6 01:31 PM
[attach]3111[/attach]: k5 w3 r1 O/ k2 u: e4 @: d
% Y! P8 r, n0 Z5 n! F  x$ b+ f4 N( ~
這是program的畫面4 z6 s+ M( K" z) T  F" N
! V  d2 O9 p# E. A' v7 ^
[attach]3112[/attach]8 O) K' i( \5 G5 l" J6 @
2 A! J+ M1 u# s
這是assignment pin的畫面) K8 \% F3 x/ p; j

$ Q( x+ t$ e9 y2 s  x+ n[attach]3113[/attach]! T7 A9 }& D% w. d% E3 D- ?

9 J/ ]  L# C/ M' \7 R- @這是燒錄下載到kit的畫面
3 o9 Y! W; K& t7 w( G: J9 z  a% V5 s' a3 F* {
####################################################+ ?7 z" Q2 T& L3 w- `
到這都很順利,
$ A) ~# t3 G3 k% J3 j, k9 w但是~kit就是不動作!!

作者: ikki    時間: 2008-3-6 02:05 PM
檢查看看clock pin 是不是assign錯?9 t( {- l* W) W. ^8 J1 ^
導致電路不動...
作者: difgor0426    時間: 2008-3-6 02:11 PM
確定沒有!我對著這塊kit的手冊在assign的
作者: michael6172    時間: 2008-3-6 04:12 PM
你那是要做 signaltap 的lab  吧; ?! ~4 i* P4 _
& Y  y% ^1 L9 c9 u# B* A4 O: B
看看文件中的設定有沒有遺漏的部份
作者: difgor0426    時間: 2008-3-6 04:54 PM
在我關閉project的時候,會出現以下3個畫面,是否我的signal沒設定好才會使KIT無法動作!
* _% g- ^+ z/ i( @; E' O$ J
, j8 q/ M; J2 R8 o[attach]3123[/attach]3 m8 G7 K/ c' d: B% ?8 i+ u. ^
/ H" b# u' }! C# u
) \% h$ y4 M* E) ~  U
[attach]3124[/attach]0 f; f% ]" N, \/ M
% F& o* U* I2 n% R: H- b1 e

; E' R9 C  Y1 r" S2 C, _[attach]3125[/attach]
作者: sieg70    時間: 2008-3-7 09:41 AM
雖然我夠菜了, 但似乎幫的上一點, 所以我就講一點, 還不懂的feature不要亂開啟9 r3 q: |& y' R( t8 |* [) l
上面signaltap2跟in-system memory content editor不要亂開, " \4 p0 u' v/ m. p
特別是signaltap2開了又沒作正確設定, 就會出現最後面關project時的三個畫面- X/ j: Y; @6 g2 z' t
發展板的manual要K完, 有沒特別的jumper要設mode?$ n4 z* B2 k( o: L% U
另外, 下載後, 發展板上config_DONE的燈有沒有亮? 有亮的話就是有正確下載,7 k, |& V8 I  m' U- I* J* E5 {
那就是你的設計的問題,% B* ]% z, R3 A" e/ K' J/ x! G, h
這電路你期待會在板子上看到什麼動作? 是否你忘了要用手去扳動對應的D的switch提供輸入? 合成過的電路有沒利用RTL view看看電路是否是你要的?
作者: difgor0426    時間: 2008-3-7 11:52 AM

. W. D& c6 N) v! j- c感謝各位的意見~
, z) Y+ c, u, W8 V同樣的描述~
* T- ]9 m/ b- |' |. y我放到altera另外一塊kit→EP2C20F484C8(茂倫)0 B# Z. k) o) g$ L/ f1 ?
所得出的結果就是我要的~0 r3 a* y1 B5 d: E' \+ I( j' M" s& E
差別只在PIN的ASSIGN9 s. X# x" X9 h5 E6 D2 ?
這樣子可能會認為KIT有問題~9 M# M8 z+ [! x* }* W- r2 E
所以~
' ?! Y/ @* _$ m, ^* q# h) r, D我又重新寫了一個
- e% U6 Q; u2 y4 i放到altera EP2C35F672C6這塊KIT~1 b. ?1 O" z! u- T+ P: k- o
! x! C7 t8 z" S
居然可以動作了~( k) B0 K) L% `# L- n. N& e- p  w5 l; T: k
以下就是這段硬體的VERILOG HDL
7 P8 Z8 C7 D! t/ |# P. T# H- Z`timescale 1 ns/1 ns: ~$ N/ P) g- T
module chip_top (6 Z, e: ^7 Z' ~2 c: O+ m% m/ G* |4 _
                  clk,
; ^7 T# @& u& }9 F; m$ r                  rst_b,
% a1 F) @- k; |' g" m8 c                  cnt,
+ }$ i8 q$ D7 d                  seg,  
/ y6 Y# r5 I1 e9 B                  a,- x* t2 s/ U" {+ \9 w+ X4 g, k/ y
                  sel,* }6 g; I. @8 I6 [# ~' q6 l* T
                  seg_u9,    - T5 `$ d# I( n% a3 S' t" v2 [
                  rst,. n- K0 u1 z# q) |) Z
                  clock,
% i+ I2 t  b1 A% H  m3 S                 );4 t8 |4 I5 [0 o( \) n. |
  
; @2 P8 {6 k8 V' y5 ?+ F   ) v4 z( P' Y8 ?0 K$ \4 w! r( P
  input  clk;) f. {' s2 G( H: ^, h: t6 b+ a3 A
  input  rst_b;
7 s2 G4 @( M3 o" }/ J1 i& v/ P  input  a, sel, rst, clock;
9 l% i' G2 ]9 k4 y, |1 G. P  output [7:0] cnt;, Q( k% V2 R. Z5 k$ ]) c
  output [7:0] seg;
3 o* I* r7 N1 r# J1 i  output [7:0] seg_u9;
" c, ~2 ?% p. `+ f  reg    [7:0] cnt;: C6 F* g# u- r
  reg    [7:0] seg;: J1 S" P9 F! l0 B
  reg    [7:0] seg_u9; 2 T) ^3 j6 _, H" A
  reg    [40:0] clk_cnt;) Y: u+ s" Q. M. {) {
  reg    [40:0] clk_seg;
! |4 W3 q$ Y7 p  reg    [40:0] clk_seg_u9;; W% Y7 B0 L! a% A" S& }
    wire   clk_cnt_end = clk_cnt[20];+ d2 H5 Q. a+ ?) R( f! h
   wire   clk_seg_end = clk_seg[20];6 j. f3 R7 O/ R( I
  wire   clk_seg_u9_end = clk_seg_u9[20];! @8 k* T1 M& J9 |( Q3 ?* e
  : f5 N, i9 }* s1 Q% f! L
  ) K7 v+ p5 _! R  g0 Y# U) D4 u1 A
//---------------------------------------------------------------& k/ Q3 X# g, O" C# z
  always @(posedge clk or negedge rst_b)! n& G! U# j! A) F+ A8 S# g* y4 v/ D5 ?
    if (!rst_b) % d3 j0 g8 m0 N; ^' a3 a$ ]
              clk_cnt <= 0;
: D: f1 O) U4 K2 C) j4 [) a& u% b    else  2 o9 B8 V# x2 l- F% {  W
             clk_cnt <= clk_cnt + 1;
) B0 O. y5 _8 A% C4 D5 M% k, {$ G: I) q2 h' |) h: s  l
  always @(posedge clk_cnt_end or negedge rst_b)
; E% w* I5 z7 w* d" Z    if (!rst_b)
0 A) _# {& g# Q% H, \              cnt <= 0;9 n3 m  `' s2 e$ }. H- b* t  m5 [( v
    else ! }: L! j3 O- L' M9 Z# L. F
              cnt <= cnt + 1;
" J  J" K& F/ j- X, W. {7 W0 h1 G
8 L5 {  W8 Z: e4 U4 z/ y//---------------------------------------------------------------# H9 J. k: k7 y5 O* Z. q

& ~" R* f( T: ~" v1 \8 d( G7 q; g) I" }: D. }. G+ _3 u
// always @(posedge clk or negedge rst_b)
* q- v! a8 U4 l: X- k8 }//   if (!rst_b)
, A! B9 o- H! z: h( v9 T1 s+ a0 i//               clk_seg <= 0;
$ s* `9 [8 ]3 Q1 ~1 x//   else
6 N  M: T! b5 K& Q. i7 T8 X! i//               clk_seg <= clk_seg + 1;
+ [* i2 ?7 G* y  O3 z' @' c9 }; f. J2 _  [8 n* ~/ e& r
// always @(posedge clk_seg_end or negedge rst_b)
5 s7 n' L4 e, E# f7 e//   if (!rst_b) * S# Z3 g% N  |  \' D* i9 N# e- {, Q+ r
//              seg <= 0;( ?9 J( ?6 e. H' l1 R, z$ D
//   else
) Q- C; }% A5 l3 w3 o//              seg <= seg + 1;5 K8 r8 g) X  a0 \- V- P0 A# |4 C4 [
//---------------------------------------------------------------     
! _. S$ t+ _7 y//===============================================================           
9 O$ ?: E6 @. u2 t3 h2 W//  always @(posedge clk or negedge rst_b)7 I: B7 o* W, u- ^# n
//    if (!rst_b); v) ~2 T0 c; H6 s% \% [3 O) Q0 e
//                clk_seg_u9 <= 0;
# {2 F4 g0 J, K5 J  X" A  t& g0 L//    else
1 I" i, Y: A. E( j- ~//                clk_seg_u9 <= clk_seg_u9 + 1;( J5 F: z+ E+ ?' S

" Q8 ?5 X' Z' e; R; C! z/ Z( i# w/ H+ W3 _//  always @(posedge clk_seg_u9_end or negedge rst_b)4 S$ x7 y0 E2 i* T* Y6 D7 o
//    if (!rst_b)
6 P* ~$ N9 V4 [; L$ c3 V//                seg_u9 <= 0;
$ V, F: K- p- X& B//    else
3 R) I5 Y7 r& i, r//                seg_u9 <= seg_u9 + 1;             : R( V0 N4 G2 P- N, _! d
//===============================================================     / ~) ~1 j  E" c" l1 f
    always@(sel or a)
  q4 j2 |- o) B   begin
# N, R0 R4 f9 `# [          if  (sel == 1'b1)+ X3 D' U- g7 ^1 E# v
               seg_u9 = 8'b0111_1001;              
1 Q, [4 ^) U- u0 g- S; P* H" U    end     
6 i+ g3 y% ?" z2 D  f* o8 {     always@(sel or a)4 C* d# b5 W$ r& m' x% }, _
   begin
3 c3 {1 m" }+ H* e$ R' b& V/ L          if  (sel == 1'b1)
: \8 b3 Z4 n6 P; m( r  d7 A              seg = 8'b0010_0100;              
' ?2 S, O" h5 l7 `- c& {4 f/ R    end  : A. a  ^5 p9 ^$ _
//===============================================================
& b) x. h$ U7 J: e& W      % G: U8 V) l6 y. T: v4 y, J9 R
endmodule
作者: tommywgt    時間: 2008-3-11 12:01 PM
標題: 社群真是個好地方
嗯, 一個問題丟出來後會有很多大大都幫忙, 社群真是個好地方




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2