Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] ERROR in synopsys: width mismatch on port 'reset' of reference to 'DFF' in 'FIR_Filter' (link 3)

Status
Not open for further replies.

mohamis288

Full Member level 3
Full Member level 3
Joined
Mar 1, 2022
Messages
165
Helped
0
Reputation
0
Reaction score
1
Trophy points
18
Activity points
1,234
Hello,

I have created a FIR_Filter verilog code and I want to synthesize my code in Synopsys software.
But When I want to elaborate my Verilog code, the following Error shown:

What is the problem?

Screenshot (358).png


My verilog code is present in the attachment.


Code Verilog - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 05/26/2021 02:24:17 PM
// Design Name:
// Module Name: FIR_Filter
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
 
 
module FIR_Filter(clk, reset, data_in, data_out);
 
parameter N = 8;
 
input clk, reset;
input [N-1:0] data_in;
output reg [N-1:0] data_out;
 
// coefficients defination
// Moving Average Filter, 3rd order
 
wire [7:0] b0 =  8'b00001010;
wire [7:0] b1 =  8'b00010000;
wire [7:0] b2 =  8'b00101000;
wire [7:0] b3 =  8'b01000000;
wire [7:0] b4 =  8'b00101000;
wire [7:0] b5 =  8'b00010000;
wire [7:0] b6 =  8'b00001010;
 
 
wire [N-1:0] x1, x2, x3, x4, x5, x6;
 
// Create delays i.e x[n-1], x[n-2], .. x[n-N]
// Instantiate D Flip Flops
DFF DFF0(clk, 0, data_in, x1); // x[n-1]
DFF DFF1(clk, 0, x1, x2);      // x[x[n-2]]
DFF DFF2(clk, 0, x2, x3);      // x[n-3]
DFF DFF3(clk, 0, x3, x4);     
DFF DFF4(clk, 0, x4, x5);
DFF DFF5(clk, 0, x5, x6);
 
 
//  Multiplication
wire [N-1:0] Mul0, Mul1, Mul2, Mul3, Mul4, Mul5, Mul6; 
assign Mul0 = data_in * b0;
assign Mul1 = x1 * b1; 
assign Mul2 = x2 * b2; 
assign Mul3 = x3 * b3; 
assign Mul4 = x4 * b4; 
assign Mul5 = x5 * b5; 
assign Mul6 = x6 * b6; 
 
 
// Addition operation
wire [N-1:0] Add_final;
assign Add_final = Mul0 + Mul1 + Mul2 + Mul3 + Mul4 + Mul5 + Mul6;
 
// Final calculation to output
always@(posedge clk)
data_out <= Add_final;
 
endmodule
 
module DFF(clk, reset, data_in, data_delayed);
parameter N = 8;
input clk, reset;
input [N-1:0] data_in;
output reg [N-1:0] data_delayed;
 
always@(posedge clk, posedge reset)
begin
    if (reset)
    data_delayed <= 0;
    else
    data_delayed <= data_in;
   
end
 
endmodule

 

Attachments

  • FIR_Filter.txt
    2 KB · Views: 132
Last edited by a moderator:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top