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.

why input in @always not synthesizable

Status
Not open for further replies.

ldhung

Member level 3
Joined
Jul 26, 2004
Messages
64
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
435
When I synthesize the code in Design Compiler,

input matchen;
input conditions;
input [NUM_WORDS-1:0] ss1, ss2, ss3;
output reg [NUM_WORDS-1:0] match_onehot_addr;

always @(matchen)
begin
if (conditions)
match_onehot_addr <= ss1 & ss2;
else
match_onehot_addr <= (ss1 & ss2 & ss3);
end

I have encountered a problem: In design 'machand', port 'matchen' is not connected to any nets. Do you know why ?
Thanks in advance
 

although matchen is inside the sensitive list, no signal inside the always block read it.
In hardware, it is either positive enable or negative enable.
You can make it work by two ways:
1. use matchen as a clock
So write as "always @(posedge matchen)"
2. assuming it is a positive enable
Add line "if(matchen)" before "if(conditions)", but in this case, ss1, ss2, ss3, conditions should be inside the sensitive list.
 

only the process (in verilog) that would implement a flop, does not need to appears inside the process.
if you want to use marchen as "clock", you must declare as "posedge matchen", and "posedge condition" to be use as reset active high
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top