EDA365电子工程师网

标题: 高手帮忙看看我的代码有什么问题 [打印本页]

作者: kindboy2008    时间: 2012-1-17 01:36
标题: 高手帮忙看看我的代码有什么问题
设计一个实现8位ALU功能的函数,其输入为两个4位操作数变量a和b,以及一个3位的选择信号select,输出为5位变量out,具体关系见下表。不考虑计算结果的上溢和下溢。  `% @1 A8 h8 x/ [, s5 G
Select信号                      函数的输出
  n0 L9 C  s. w3 w% t3’b000                                                   a. I' m4 E3 V6 h; E
3’b001                                                 a+b
3 h8 d* y4 h3 Z4 [! _1 P3’b010                                                  a-b
: \# G. c. c0 t7 i0 X: k3’b011                                                  a/b
, f8 b# B! }9 l/ g! q& y. O3’b100                                             a%b(余数)
8 j; U6 a% W8 U* ]2 C3’b101                                                 a<<1* ~# L% Y) S! [, C  W6 {" o, ]
3’b110                                                 a>>13 j  B5 N, a- \5 H' y( U2 y3 X
3’b111                                                  a>b* Z0 y, \8 I' m/ [9 J0 X  t, B- O
( v4 E  ~( t- P- r
以下是我的代码:
8 I8 A! E' A$ Z* T# |7 ?module alu8(a,b,select,out);
8 W4 w4 P; m! j" O7 k: z& q* cinput[3:0]a,b;
5 }  Q+ y+ \/ a1 D# I. z1 Jinput[2:0]select;+ Z, Z" U3 C2 ?# {
output[4:0]out;6 ^6 q* Y% I: v& o4 ~4 x( z
reg[4:0]out;
8 Y0 @! x5 `: `' ?2 {* talways@(select[2:0] or a or b)
0 Y% v5 \0 n. v: Wcase(sel)
) M2 z# M( o3 D2 B, K* C3'b000ut=a;& s4 k2 F3 k+ A  y
3'b001ut=a+b;
8 {& c4 }6 m/ ?3 D; T) Q3'b010ut=a-b;
2 G6 _2 s  e2 l; E" F" @$ L3'b011:out=a/b;, V+ K2 Q& q7 q4 s
3'b100:out=a%b;2 b1 t) I) P4 ~7 [$ Q- g
3'b101:out=a<<1;
0 T+ Z" L, H9 u3 h7 V3'b110:out=a>>1;9 K/ Z9 ?; @* ~# E+ f
3'b111:out=a>b;9 ?) T; v9 h+ E% M, _$ h0 r
defaultdisplay("Invalid control signals!");
3 G+ H* u8 b6 _% Eendcase& [+ G% e6 A0 c% @+ N4 J
endmodule

作者: blue822180    时间: 2012-8-13 15:53
module alu8(a,b,select,out,rst);1 B2 {4 M1 B) [& J  ~
input[3:2]a,b,rst;
, u/ C; F1 ~' E5 p- O- J input[2:0]select;
3 r; M1 _  l* O( S3 D* @ output[4:0]out;' C  c1 h" c$ l. S+ P" ^, N8 q
reg[4:0]out;
7 H: W. W$ I5 Q0 r8 g- y5 c" v parameter $ S" C% j7 M7 [
idle=3'b000," ]% M1 }1 o3 B- p5 @/ V
s1=3'b001,
; p4 D% O  g( [ s2=3'b010,5 T, K4 _1 y% E0 }% c; e2 T" ^
s3=3'b011,
5 g; ]7 }# |! K4 i s4=3'b100,
' C6 {4 i6 }0 \4 A s5=3'b101,; _: B0 B( K$ ~- U7 C8 F
s6=3'b110,) n2 H6 c! m' s* c$ e
s7=3'b111;) I5 e% ]+ |$ u$ N; F

$ P7 s- X' Y9 Y) t* l always@( a or b)
2 I$ Q4 O6 b; o8 I( ? if(rst)
- r7 f4 ]' _5 J0 w% ?8 C   out<=00000;
  K( q% z* }! T   else
+ [/ u5 J, b; A& Y   begin- c' g) i, o$ k
   case(select)+ O* ?" Z/ c8 A8 @& p/ f& z
idle:begin" U1 d9 [- D3 w0 I
   out<=a;* \& O9 X; D! W5 {. H) f
    end& }- t! m  h2 w( s1 }9 _4 b
s1:begin
& r3 n% q0 O1 C. k; W     out<=a+b;) ?& s0 |  m8 U
      end. O6 |" G! [! }6 Z+ p' }3 {
s2:begin
$ z- u6 R; h) n0 d    out=a-b;
( G" c& o" k6 Q8 x) e    end) D5 ^1 ^/ I* [5 J+ `) M
s3:begin) b% q( g9 F& {" K' d
    out=a/b;) [/ k# D2 o" G4 i( n: W& f
    end9 _/ |: n; B8 E: x. f2 F
s4: begin
, O. S" F) F5 @8 _8 j# P# |* S   out=a%b;; V0 _2 W6 ^8 \  G, W1 G7 P
    end8 c9 X9 d/ l9 p) e4 {! \
s5:begin
- U# K, n# g1 ]    out=a<<1;
' `" ~8 Y- k4 D9 L% m2 |    end
! K1 P% k% l% Y7 d3 _* f3 B' |s6:begin; c+ k& V( _5 t( ]7 d" L" e
out=a>>1;
% O7 x: f8 f8 V3 kend$ L; Y, n' a& S4 r! v  V' Y  j
s7:begin# f8 \6 C8 [- Y8 e$ |2 X7 P
  out=a>b;
- g! L1 u) ^+ h- {- x  end
* ?9 X* Q+ K# U, _3 H6 I default
. t: `. J7 P+ Z& ~& o8 m( Q $display( "Invalid control signals!");5 l; q  y9 x9 X+ D$ r
endcase
7 k1 U$ V: J" v% x end
+ M0 ~+ v! l# u8 G' \$ w endmodule
作者: blue822180    时间: 2012-8-13 15:54
给你改了,我编译已经通过,没有错误有警告
作者: 逸风    时间: 2012-8-17 22:09
blue822180 发表于 2012-8-13 15:54 2 }1 [1 F+ A+ H. g
给你改了,我编译已经通过,没有错误有警告

) N; C7 ^3 O# [5 f这个程序不能编译下载到板子里吧??
作者: blue822180    时间: 2012-8-20 08:25
逸风 发表于 2012-8-17 22:09
  ^6 @$ S: r  J8 I这个程序不能编译下载到板子里吧??
; }& ]: P3 s7 V0 Q) G5 P4 a
兄弟我没有板子,我只能做到仿真没问题,至于能不能上班子你试试吧
作者: 逸风    时间: 2012-8-20 12:02
blue822180 发表于 2012-8-20 08:25 7 s9 D! t- c' j# J  g* }' q
兄弟我没有板子,我只能做到仿真没问题,至于能不能上班子你试试吧
& e) e/ v) z6 m# P$ _  r/ W0 }! ~! {
是的,不能上板子的,仿真倒是可以。我觉得学FPGA时需要个板子的,更实际,建议买个开发板吧,也贵不了哪去,还能学到东西
作者: blue822180    时间: 2012-8-20 16:31
逸风 发表于 2012-8-20 12:02 3 Q# ^7 Q" T' |! K# t: p( d& l
是的,不能上板子的,仿真倒是可以。我觉得学FPGA时需要个板子的,更实际,建议买个开发板吧,也贵不了哪 ...

6 S4 E" x! q6 ]5 h开发板哪里买呀,什么型号?多少钱
作者: 逸风    时间: 2012-8-20 16:49
blue822180 发表于 2012-8-20 16:31
9 z8 i4 F# [' r4 t$ U) }开发板哪里买呀,什么型号?多少钱
7 a4 ^4 O" F5 ]& B3 M
到FPGA各大公司的主页上都有关于开发板介绍的,不过官网上比较贵,可以到taobao上看看
作者: blue822180    时间: 2012-8-21 08:42
逸风 发表于 2012-8-20 16:49
( F5 H" T( c2 Z8 B到FPGA各大公司的主页上都有关于开发板介绍的,不过官网上比较贵,可以到taobao上看看
( e1 O2 B! d& [3 L7 P/ v# T
我那个程序把非阻塞付直改为阻塞付直应该可以再板子上跑的




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2