给数字IC设计新手入门的几点建议
Labels: AsicDesign
Digital IC design,Verification,FPGA,STB,Video Codec...
Labels: AsicDesign
foreach_in_collection gg $gan {
set ggname [get_attribute $gg full_name]
# echo "Processing $ggname"
set gpins [get_pins -leaf -quiet -of $gg]
set gpins_in [filter_collection $gpins "direction==in"]
set gpins_in_soc [sizeof_collection $gpins_in]
if { $gpins_in_soc > $high_fanout } {
echo "Net $ggname is a high fanout net $gpins_in_soc greater than $high_fanout connections"
}
}
Labels: AsicDesign, Script
Question:
The original Verilog code snippet is as follows:
module sub ( C, z );
input C;
output z;
AN3 U1 ( .A(), .B(), .C(C), .Z(z) );
endmodule
In the dumped Verilog, the code is as follows:
module sub ( C, z );
input C;
output z;
AN3 U1 ( .A(1'b0), .B(1'b0), .C(C), .Z(z) );
endmodule
Why does Design Compiler connect unconnected pins to 0?
Because Design Compiler does not allow a floating input of a cell, an
unconnected input will always be tied to '0' or '1'.
So in the dumped Verilog, you can see the unconnected pin A connected to 0,
But from version Z-2007.03-SP1, the behavior is different. Check the dumped
Verilog; it is similar to the following:
=============================
wire net1, net2;
MUX2D1 U1 ( .I0(net1), .I1(net2),.C(C), .Z(z) );
Notice the difference in the generated Verilog between versions
Y-2006.06 and Z-2007.03.
Labels: AsicDesign, Script
Labels: AsicDesign
Labels: AsicDesign
| Standards Compliance - decoder only |
| ISO/IEC 14496-10 AVC BP@L4, MP@L4 ,HP@L4.1 |
| ISO/IEC 13818-2 MPEG-2 MP@HL |
| ISO/IEC 14496-2 MPEG-4 ASP (DivX) |
| SMPTE VC-1 SP, MP, AP@L3 |
| RV8/9/10 |
| JPEG |
Benefits
| Interface |
| Host interface: AMBA3 32-bit APB interface |
| External memory interface: AMBA3 64-bit AXI Interface or AMBA2 AHB interface |
| Customized interface for optimally designed bus multi-master environments can be available |
| Decoding tools |
| Support all features of the standards |
| Deblocking filter for post-processing |
| State-of-art error concealment strategy |
| Simultaneous multi-standard/multiple decoding is possible |
| Error resilience tools |
| Optional: Built-in rotation/mirroring function to remove redundant bus-loading: 90 x n degree rotation (n=0,1,2,3); Vertical/horizontal mirroring |
| Performance |
| HD(1920X1080) decoding @ 150MHz |
| Required host processor resource to run: less than 1 MIPS |
Deliverables
| RTL source code |
| IP integration guide & user guide |
| Test-bench |
| Evaluation Board |
| Part Number | BodaHx8 |
| Short description | MPEG-2 MP + H.264 HP + VC-1 AP + MPEG-4 ASP (DivX) + RV8/9/10 + JPEG codec (1920*1080*30) |
| Provider: | Chips&Media, Inc |
| Portability | FPGA |
| ASIC Target | TSMC@90um |
| FPGA Target | Xilinx Virtex 4 |
| Type | Soft |
| Compliant Standard | |
| Maturity | Very good |
| Availability | Oct, 2007 |
| TSMC Rating : | Verification: 0.09G (CLN90G) |
| FPGA Technology: | Xilinx: Virtex-4 LX |
| Bus Compliance : | AMBA AXI |
Labels: AsicDesign, Docs
[I think it's very useful!]
Question:
I know that I can map the "full case" statements in RTL to MUX_OP synthetic components by using the "infer_mux" synthesis pragma or the "hdlin_infer_mux" global variable. However, in some cases I see that these MUX_OPs are inferred in the GTECH but mapped to non-MUX random logic gates in the library after compile or compile_ultra. How can I preserve these MUX structures even if the QOR is degraded with library MUX cells?
Answer:
If you want Design Compiler to preferentially map multiplexing logic to multiplexers or multiplexer trees in your technology library, you must infer MUX_OP cells. But it doesn't guarantee that the tool will use the MUX from the target library in the final implementation after compile or compile_ultra. Keep in mind that forcing MUXes might degrade the QOR of your design in some cases. So Design Compiler can change MUX_OPs to random logic based on the constraints. Starting from version Z-2007.03-SP3, you can use the set_size_only or set_map_only commands to set size_only or map_only attributes on the MUX_OP cells as follows: -Without size_only and map_only attributes, the MUX_OP synthetic cells are mapped to MUX cells if both area and delay are comparable to equivalent combinational random logic; otherwise combinational random logic is used. -With the map_only attribute, the MUX_OP is initially mapped to MUX cells, but are remapped to combinational random logic if delay can be improved; -With the size_only attribute, the MUX_OP is mapped to MUX cells. The size_only restricts optimization and can result in worse QOR. For example, you can set the attributes as one of the following: set_size_only [get_cells -hier * -filter "@ref_name =~ *MUX_OP*"] or set_map_only [get_cells -hier * -filter "@ref_name =~ *MUX_OP*"] Note: The "set_size_only" solution does not work in versions earlier to Z-2007.03-SP3. The "set_map_only" solution does not work in version earlier to Z-2007.03-SP2.
Labels: AsicDesign