|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Altera推荐的无符号数的乘法 8 [5 O+ O3 y9 A( N# n
. P2 W5 g. Q/ i8 KExample 12-5: Verilog HDL Unsigned Multiply-Accumulator
5 E4 P. G& X5 E3 w' V4 H) }module unsig_altmult_accum (dataout, dataa, datab, clk, aclr, clken);( r9 y7 B* T* o3 _( [0 u
input [7:0] dataa, datab;
1 r8 H7 f5 G% F' t7 F" n$ A5 ?6 b% m& ginput clk, aclr, clken;; A3 r. G1 i# C1 S% T2 L ]
output reg[16:0] dataout;. T- {! S, B/ p6 j. F- x# `- y
reg [7:0] dataa_reg, datab_reg;
% ^1 |1 [9 O4 y, breg [15:0] multa_reg;9 j* C$ y4 o! e- J$ H/ U) |
wire [15:0] multa;) h4 y3 n# a/ D# `, B
wire [16:0] adder_out;
/ c6 B& i* {/ q: I4 {4 Bassign multa = dataa_reg * datab_reg;+ r2 Q1 ~4 ^. D7 U
assign adder_out = multa_reg + dataout;3 H6 }" \- z: j. N6 s/ q c
always @ (posedge clk or posedge aclr)0 O/ K" r2 S* Y( E
begin# n+ F! p; a% t) I
if (aclr)
0 {/ E: ?% O- N+ W! M- R7 Hbegin, k. H) W: x* ^! z h/ l
dataa_reg <= 8'b0;
$ ~* x! V/ h3 r5 S" Z& r9 Zdatab_reg <= 8'b0;: E" u, l6 u% j& w' D
multa_reg <= 16'b0;
' ]* P& C8 l6 c* Zdataout <= 17'b0;
2 H: G+ k3 g% R, [& iend
$ ?$ R. h+ a% Y; p) R3 A8 ]5 lelse if (clken)3 p: `! r5 i- b
begin, i L3 Z& N1 y/ d! r0 Y5 u
dataa_reg <= dataa;. s$ ^5 d9 g7 j9 V# J0 u. f' u
datab_reg <= datab;1 f4 @: |; B+ @2 `( A) n% F* Y
multa_reg <= multa;+ a$ ?$ w+ _% n# K5 v! B, Y
dataout <= adder_out;# a" r" Z3 P) d+ M: ?4 W( K
end, J1 P( Z9 R: w i, M
end5 b2 l9 [. V8 u
endmodule |
- }* x/ [5 ~9 M$ t& H/ n |
|