数字后端抽取lib

  1. 对于抽lib,我们有两种方式可以抽取,一种是在innovus里面抽取。这种方法常见于pr flow还2.没有跑完,而top又急着要我们这个block的le和lib信息去跑top的pr flow,这个时候我们就可以在innovus里面直接抽lib出来给top去用,命令如下:
set_analysis_view -setup {cortexa7core_view_rcmax cortexa7core_view_rcmin} -hold {cortexa7core_view_rcmax cortexa7core_view_rcmin}
do_extract_model -view cortexa7core_view_rcmax ../data/cortexa7core_wc.lib
do_extract_model -view cortexa7core_view_rcmin ../data/cortexa7core_bc.lib

这样工具就会在data目录下生成两个lib文件,一个是cortexa7core wc.lib用于setup分析,一个是cortexa7core bc.lib用于hold分析。

  1. 而另外一种抽lib的方式则是在pt里面抽,这个一般是我们a7block已经完成了timing signoff或者接近signoff,这个时候lib/db文件则需要到PT里面去抽取,这个时候时序就比较精准了。在完成PT分析之后,我们可以通过下面的命令输出etm timing模型,这个模型一般只有I0接口的时序没有block内部的timing情况,分WC和BC两个Corner分别提取,即在runpt wc.tcl和runpt bc.tcl下面加入下面的命令即可
file mkdir etm
extract_model -library_cell -test_design -output etm/${DESIGN_NAME}_${MODE} -format {lib} -block_scope

这样工具就会在pt/etm目录下生成两个lib文件,一个是cortexa7core wc.lib用于setup分析,一个是cortexa7core bc.lib用于hold分析。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,可以按照以下步骤实现: 1. 在后端编写一个API接口,接受来自安卓端的请求。 2. 在后端连接数据库,并编写一个查询语句,随机抽取10道题目。 3. 将查询结果返回给安卓端。 4. 安卓端接收到后端返回的题目数据后,进行解析并展示给用户。 下面是一个简单的代码示例(使用Java语言和MySQL数据库): 后端代码: ```java //导入相关包 @RestController @RequestMapping("/api") public class QuestionController { @Autowired private DataSource dataSource; @GetMapping("/questions") public List<Question> getQuestions() throws SQLException { Connection conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM questions ORDER BY RAND() LIMIT 10"); List<Question> questions = new ArrayList<>(); while (rs.next()) { Question question = new Question(); question.setId(rs.getInt("id")); question.setTitle(rs.getString("title")); question.setContent(rs.getString("content")); // 将每个题目加入到题目列表中 questions.add(question); } rs.close(); stmt.close(); conn.close(); return questions; } } ``` 安卓代码: ```java // 导入相关包 public class MainActivity extends AppCompatActivity { private ListView questionListView; private List<Question> questionList = new ArrayList<>(); private QuestionAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); questionListView = findViewById(R.id.question_list_view); adapter = new QuestionAdapter(MainActivity.this, R.layout.question_item, questionList); questionListView.setAdapter(adapter); // 发送请求获取题目数据 sendRequest(); } private void sendRequest() { // 创建一个请求队列 RequestQueue queue = Volley.newRequestQueue(this); String url = "http://your.api.url/api/questions"; // 创建一个StringRequest对象 StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // 解析返回的数据 parseJSON(response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(MainActivity.this, "请求失败!", Toast.LENGTH_SHORT).show(); } }); // 将请求添加到请求队列中 queue.add(stringRequest); } private void parseJSON(String jsonData) { Gson gson = new Gson(); List<Question> questions = gson.fromJson(jsonData, new TypeToken<List<Question>>() {}.getType()); questionList.clear(); questionList.addAll(questions); adapter.notifyDataSetChanged(); } } ``` 注意:以上代码仅为示例,具体实现方式可能因项目需求而异。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值