Страница 1 из 1

Программа в коде Verilog

Добавлено: Пн мар 14, 2011 20:45:21
ingener_elektronik
Здравствуйте!!!
Помогите, пожалуйста, найти синтаксические ошибки в программе написанная на языке Verilog.
Программа сумматора – вычитателя.

// Top-level module
module adderaubtractor (A, B, Clock, Reset, Sel, AddSub, Z, Overflow);
parameter n - 16;
input [n-1:0] A, B;
input Clock, Resetm, Sel, Addsub;
output [n-1.0] Z;
output Overflow;
reg SelR, AddSubR, Overflow;
wire [n-1:0] Areg, Breg, Zreg;
wire carryyout, over_flow;
// Define combinational logic circuit
assign H - Berg ^ {n{AddSubr}};
mux2to1 multiplexer (Areg, Z, Selr, G);
defparam multiplexer.k - n;
adderk nbit_adder (AddSurR, G, H, M, carrayout);
defparam multiplexer.k - n;
assing over_flow - carryout ^ G [n-1] ^ H[n-1] ^ M[n-1];
assing Z - Zreg;
// Define flip-flops and registers
always @ (posedge Reset or posedge Clock)
if (Reset -- 1)
begin
Areg <- 0; Breg <- 0; Zreg <- 0;
SelR <- 0; AddSubR <- 0; Overflow <- 0
end
endmodule
// k-bit 2-to-1 multiplexer
module mux2to1 (V, W, Sel, F);
parameter k - 8;
input [k-1:0] V, W;
input Sel;
output [k-1:0] F;
reg [k-1:0] F;
always @ (V or W or Sel)
if (Sel -- 0) F - V;
else F - W;
endmodule
// k-bit adder
module adderk (carryin, X, Y, S, carryout);
parameter k - 8;
input [k-1:0] X, Y;
input carryin;
output [k-1:0] S;
output carryout;
reg [k-1:0] S;
reg carryout;
always @ (X or Y or carryin)
{carryout, S} - X + Y + carryin
endmodule

Заранее огромное спасибо всем откликнувшимся :-)

Re: Программа в коде Verilog

Добавлено: Пн мар 14, 2011 20:52:31
ingener_elektronik
Строки в которых есть ошибки:

// Top-level module
module adderaubtractor (A, B, Clock, Reset, Sel, AddSub, Z, Overflow);
parameter n - 16; Есть ошибка
input [n-1:0] A, B;
input Clock, Resetm, Sel, Addsub;
output [n-1.0] Z;
output Overflow;
reg SelR, AddSubR, Overflow;
wire [n-1:0] Areg, Breg, Zreg;
wire carryyout, over_flow;
// Define combinational logic circuit
assign H - Berg ^ {n{AddSubr}}; Есть ошибка
mux2to1 multiplexer (Areg, Z, Selr, G);
defparam multiplexer.k - n; Есть ошибка
adderk nbit_adder (AddSurR, G, H, M, carrayout);
defparam multiplexer.k - n; Есть ошибка
assing over_flow - carryout ^ G [n-1] ^ H[n-1] ^ M[n-1]; Есть ошибка
assing Z - Zreg; Есть ошибка
// Define flip-flops and registers
always @ (posedge Reset or posedge Clock)
if (Reset -- 1)
begin
Areg <- 0; Breg <- 0; Zreg <- 0; Есть ошибка
SelR <- 0; AddSubR <- 0; Overflow <- 0
end
endmodule
// k-bit 2-to-1 multiplexer
module mux2to1 (V, W, Sel, F); Есть ошибка
parameter k - 8; Есть ошибка
input [k-1:0] V, W;
input Sel;
output [k-1:0] F;
reg [k-1:0] F;
always @ (V or W or Sel)
if (Sel -- 0) F - V; Есть ошибка
else F - W;
endmodule
// k-bit adder
module adderk (carryin, X, Y, S, carryout);
parameter k - 8; Есть ошибка
input [k-1:0] X, Y;
input carryin;
output [k-1:0] S;
output carryout;
reg [k-1:0] S;
reg carryout;
always @ (X or Y or carryin)
{carryout, S} - X + Y + carryin Есть ошибка
endmodule

Re: Программа в коде Verilog

Добавлено: Пн мар 14, 2011 20:56:40
ingener_elektronik
Я новичок в этом деле так и поэтому многое не знаю, так что если нужна еще какая-то информация (которая вам могла бы помочь в устранении ошибок), напишите…