EDA365电子工程师网

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

作者: kindboy2008    时间: 2012-1-17 01:36
标题: 高手帮忙看看我的代码有什么问题
设计一个实现8位ALU功能的函数,其输入为两个4位操作数变量a和b,以及一个3位的选择信号select,输出为5位变量out,具体关系见下表。不考虑计算结果的上溢和下溢。
6 P# W* h1 Z9 r' lSelect信号                      函数的输出5 z9 w* n$ H. Z% g' A5 [: c7 {8 S8 ?
3’b000                                                   a
& B- p/ F4 X9 p- A+ `' R% S3’b001                                                 a+b
0 ?  ^' }9 v' z. V: U+ M$ v3’b010                                                  a-b, Q, `5 P9 b# I% a
3’b011                                                  a/b
7 H2 K% `# a% B2 q: L4 W( [7 j' }) o0 T3’b100                                             a%b(余数)
/ g, d4 W) r* [" W. ~" \3’b101                                                 a<<1
6 u, O$ f0 V2 Z. y+ e( r0 s+ Z3’b110                                                 a>>1
; j: n$ ?% X2 M* N. V' a! u4 y3’b111                                                  a>b
$ m( {0 I& B6 c$ o5 O/ x- W8 r8 `  s  ^( N3 O
以下是我的代码:
3 n  ~% j7 W; d; L9 ?9 |) fmodule alu8(a,b,select,out);0 ~1 i) R$ f- s% L% d! J
input[3:0]a,b;
' e6 o$ Z" ]) e/ i0 }input[2:0]select;+ t1 T4 \& w9 G( S3 L
output[4:0]out;
: r. o* [: @  @2 Ireg[4:0]out;$ W' P: L5 ~6 s- s* Z" _
always@(select[2:0] or a or b)8 |5 e( f- ~4 w: X. A
case(sel)0 e: F) C5 i5 A3 d
3'b000ut=a;
! C( c. F: p! Y  P& a+ j3'b001ut=a+b;8 c( v2 X5 Y" s, v
3'b010ut=a-b;) F+ F; m( V7 W. ]3 b9 `
3'b011:out=a/b;
/ W9 ^6 L' J9 Y  a" g3'b100:out=a%b;
; K( P, q9 |( N+ p3'b101:out=a<<1;4 F# ~( Y" d* N8 \/ @( N3 u
3'b110:out=a>>1;
. M6 K( _% ~; e" f. M0 @2 [3'b111:out=a>b;- I1 N* z3 U9 I" r1 g! k8 u4 B( S
defaultdisplay("Invalid control signals!");
/ G# P; S6 L8 S' w# hendcase
8 B. d, s( v# [+ @  Nendmodule

作者: blue822180    时间: 2012-8-13 15:53
module alu8(a,b,select,out,rst);1 F$ e6 u4 C2 S' y, t
input[3:2]a,b,rst;# a5 J" |# U1 d$ O* @
input[2:0]select;
4 O6 w" s% Y- H, [+ s0 z output[4:0]out;
( G  z% {. s. [ reg[4:0]out;
) g4 y/ Z$ f* C( t( h' n! P3 J parameter # e7 t4 ~0 e2 U. _
idle=3'b000,
2 J* m; f( e( e2 ~2 T  S2 l s1=3'b001,
7 Q, C# j  O; o# y# ^ s2=3'b010,
, e1 t$ X  U  s6 o% I/ q, a) D' m s3=3'b011,
1 l( c; F- Q+ n5 w! l  n  n s4=3'b100,
4 ^- K+ q0 G; Q3 t% i s5=3'b101,
* v+ O# _' L( r5 f! H/ `$ M) q s6=3'b110,
7 ~8 ?& h5 V) y# P  d# g s7=3'b111;
, q1 A- T" s3 ?3 |: d / B' q3 L7 w( a* `/ B
always@( a or b)
' S. V( B2 Z8 F8 y. A if(rst)3 _9 P, ~5 L6 f5 h, n
   out<=00000;  W4 u! R( W& [1 e1 u, I
   else
$ C" B' q6 [3 V) S  u   begin
1 b  G' l# W! u) n# g   case(select)4 k$ i- F7 J0 x: h
idle:begin, D. V  C. s1 u- m" G7 {7 h
   out<=a;; w# L  H+ D& \& O# R, l" |
    end2 t" O( q" u9 r6 l6 @
s1:begin
5 R0 u- }( E4 n2 i( Q5 T! a: X$ I     out<=a+b;3 q; G1 V; u# l3 r9 g/ {7 z
      end4 L: i. C' w) o  ?6 A
s2:begin6 c+ t9 l/ h  b- n: n, k
    out=a-b;  r* m4 G5 F8 l* O0 c
    end" [% G4 G: P, |/ X5 {0 ~
s3:begin
3 ?/ B8 T4 v7 p' Z3 L    out=a/b;
; \* O% n% f2 j1 t6 A8 |2 Z% X    end% E" @3 H5 l; }) k3 S
s4: begin
; _' x9 x8 x; H- {   out=a%b;
# q+ _' }- Y" Y& r; K3 l    end- f; C# O/ k( n$ P$ _2 X8 T+ ^+ e
s5:begin
6 H; S* I8 W: E9 q    out=a<<1;
' i+ O7 a7 \7 P( S- S    end. e1 X& B( o! T; \) X6 K
s6:begin
4 Q! y5 x. b; l8 F1 jout=a>>1;4 w8 {8 M7 f( [+ t! Z7 Q% f0 u# h" [- P
end, p+ f+ w- G4 |0 H3 I5 g
s7:begin" l+ Q6 s1 q+ g1 U$ ~0 A; B5 q
  out=a>b;3 p5 H. n6 d0 |( _  G2 M
  end
3 Y  M6 `6 ^9 [4 e4 N default
" \# J" n3 @# F9 h" r2 m $display( "Invalid control signals!");
8 L7 W3 Y% u5 M0 x2 `% w endcase7 _9 h, e0 ^3 ?
end
% r  T& g" L6 v, J2 S, } endmodule
作者: blue822180    时间: 2012-8-13 15:54
给你改了,我编译已经通过,没有错误有警告
作者: 逸风    时间: 2012-8-17 22:09
blue822180 发表于 2012-8-13 15:54
! U) g' L, f* b给你改了,我编译已经通过,没有错误有警告
4 `8 k' v/ G( O- T6 d9 I
这个程序不能编译下载到板子里吧??
作者: blue822180    时间: 2012-8-20 08:25
逸风 发表于 2012-8-17 22:09 3 i: p& U0 L. F3 c
这个程序不能编译下载到板子里吧??

1 i' i) \4 J  A& `5 H/ w( k兄弟我没有板子,我只能做到仿真没问题,至于能不能上班子你试试吧
作者: 逸风    时间: 2012-8-20 12:02
blue822180 发表于 2012-8-20 08:25 ' b) R' J- U6 n6 d+ V5 M4 u7 y  j
兄弟我没有板子,我只能做到仿真没问题,至于能不能上班子你试试吧
# G' Q( `+ h" Y# O! T. `
是的,不能上板子的,仿真倒是可以。我觉得学FPGA时需要个板子的,更实际,建议买个开发板吧,也贵不了哪去,还能学到东西
作者: blue822180    时间: 2012-8-20 16:31
逸风 发表于 2012-8-20 12:02
  D; r9 X; L+ h/ L6 {8 Z' }1 X) j是的,不能上板子的,仿真倒是可以。我觉得学FPGA时需要个板子的,更实际,建议买个开发板吧,也贵不了哪 ...

9 |/ U# j: S6 l开发板哪里买呀,什么型号?多少钱
作者: 逸风    时间: 2012-8-20 16:49
blue822180 发表于 2012-8-20 16:31
  J1 S- c+ z5 q, T  b1 s/ \" d1 v开发板哪里买呀,什么型号?多少钱

% e0 N' d; R7 s% ]4 G到FPGA各大公司的主页上都有关于开发板介绍的,不过官网上比较贵,可以到taobao上看看
作者: blue822180    时间: 2012-8-21 08:42
逸风 发表于 2012-8-20 16:49
+ n2 g) S2 |. R: w8 s9 Q0 c到FPGA各大公司的主页上都有关于开发板介绍的,不过官网上比较贵,可以到taobao上看看

) }$ B6 L* L5 f; ?我那个程序把非阻塞付直改为阻塞付直应该可以再板子上跑的




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