vlsi

How to use clock gating in RTL?

穿精又带淫゛_ 提交于 2019-12-03 07:22:06
I am clock gating some latch and logic in my design. I don't have much experience in synthesis and place & route. What is the proper way to implement clock gating in RTL? Example1: always_comb begin gated_clk = clk & latch_update_en; end always_latch begin if(gated_clk) begin latch_data <= new_data; end end Example2: I stumbled into a RTL examples while doing some research about good practices in RTL clock gating. That example implemented the above code like this: clock_gator cg_cell (.clk(clk), .en(latch_update_en), .scan_en(scan_en_in), .gated_clk(gated_clk)); always_latch begin if(gated_clk

tcl text processing - rearrange values in rows and columns based on user defined value

妖精的绣舞 提交于 2019-11-29 05:23:31
I am new to tcl and would like to use it in text processing of a simple case. The following format is in Liberty (.lib file) which is used in chip design. I would be truly indebted for any help on this. Here is a snippet of my file (text processing to be done only on the "values") timing () { related_pin : "clk"; timing_type : setup_rising; rise_constraint (constraint_template_5X5) { index_1 ("0.01, 0.05, 0.12, 0.2, 0.4"); index_2 ("0.005, 0.025, 0.06, 0.1, 0.3"); index_3 ("0.084, 0.84, 3.36, 8.4, 13.44") ; values ( \ "1.1, 1.2, 1.3, 1.4, 1.5", \ "2.1, 2.2, 2.3, 2.4, 2.5", \ "3.1, 3.2, 3.3, 3

tcl text processing - rearrange values in rows and columns based on user defined value

戏子无情 提交于 2019-11-27 22:52:02
问题 I am new to tcl and would like to use it in text processing of a simple case. The following format is in Liberty (.lib file) which is used in chip design. I would be truly indebted for any help on this. Here is a snippet of my file (text processing to be done only on the "values") timing () { related_pin : "clk"; timing_type : setup_rising; rise_constraint (constraint_template_5X5) { index_1 ("0.01, 0.05, 0.12, 0.2, 0.4"); index_2 ("0.005, 0.025, 0.06, 0.1, 0.3"); index_3 ("0.084, 0.84, 3.36,

how can I apply fixed fraction to the integer

这一生的挚爱 提交于 2019-11-27 09:33:28
I'd like to multiply to integer with modified fraction as following ( Multiplication by power series summation with negative terms ) I have done what to find the method the fraction convert to CSD form. But I want to know how can I apply to multiply to integer. For example, I got this 0.46194 = 2^-1 - 2^-5 - 2^-7 + 2^-10. then I can get like this as verilog rtl expression : y= (x>>1) - (x>>5) - (x>>7) + (x>>10); But the problem is that what if I got the input value is 3, then how can I calculate above code? y= (3>>1) - (3>>5) - (3>>7) + (3>>10); But As i know, It does impossible calculate.

how can I apply fixed fraction to the integer

懵懂的女人 提交于 2019-11-26 14:46:09
问题 I'd like to multiply to integer with modified fraction as following (Multiplication by power series summation with negative terms) I have done what to find the method the fraction convert to CSD form. But I want to know how can I apply to multiply to integer. For example, I got this 0.46194 = 2^-1 - 2^-5 - 2^-7 + 2^-10. then I can get like this as verilog rtl expression : y= (x>>1) - (x>>5) - (x>>7) + (x>>10); But the problem is that what if I got the input value is 3, then how can I