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.

problem about synopsys synthesis

Status
Not open for further replies.

Rachel

Newbie level 6
Joined
Oct 25, 2003
Messages
14
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
130
I write verilog code as below :
always @(posedge clock or posedge rst)
if (rst)
reg1 <= 1'b0 ;
else
reg1 <= 1'b1 ;

Synopsys will synthesis this register with its input connected to VCC , I change some setting in .synopsys_setup ,and let it put a cell between system VCC with its input. The problem is I wish every register's input ( described like before) don't be connected to VCC directly and synopsys can put a cell between it and VCC. I hope one cell to one register , but synopsys will connect all the inputs and only put one cell between them and VCC . The cell is from a library provided by fab , I can't change its fanout . Can I disovle it by setting synthesis constraint ? Can anyone help me ?
 

synthesis it first, then wrote a script to change it. either in DC or directly modify the netlist. piece of a cake.
 

cdic said:
synthesis it first, then wrote a script to change it. either in DC or directly modify the netlist. piece of a cake.

Do you mean I can change the schematic result by DC command ? Can you give me an example ? Thanks a lot! :)
 

Cells Create a cell create_cell
Delete a cell remove_cell
Nets Create a net create_net
Connect a net connect_net
Disconnect a net disconnect_net
Delete a net remove_net
Ports Create a port create_port
Delete a port remove_port
Buses Create a bus create_bus
Delete a bus remove_bus
 

Rachel,
how about attach your cell to vcc / ground and assign the other end of this cell to your register inside your always block.

example:

cell (.Z(wire1), .A(VCC));

always .....
if (rst)
reg1 <= 1'b0;
else
reg1 <= wire1;
 

you must don't have a cell that always out put a logic "1" in your cell library.
 

inside your always block.

example:

cell (.Z(wire1), .A(VCC));

always .....
if (rst)
reg1 <= 1'b0;
else
reg1 <= wire1;
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top