当前位置: 首页 > news >正文

深圳建网站一般多少钱网页生成应用工具

深圳建网站一般多少钱,网页生成应用工具,网站的横幅怎么做,电商企业网站建设1 makefile在IC设计中的地位 关于makefile的详细介绍可以参考第一个连接,里面的内容很多也很详细。但在数字IC设计中,并不会把所有的用法都用到,下面记录一下主要用到的规则。 2 IC设计涉及到的主要用法 2.1 变量的定义和使用 在makefile…

1 makefile在IC设计中的地位

关于makefile的详细介绍可以参考第一个连接,里面的内容很多也很详细。但在数字IC设计中,并不会把所有的用法都用到,下面记录一下主要用到的规则。

2 IC设计涉及到的主要用法

2.1 变量的定义和使用

在makefile的使用过程中,存在变量的定义和使用。首先,关于变量的定义包括了环境变量的定义和普通变量的定义,也包括了从makefile执行命令行输入的变量。变量的定义方式有几种下面只给出其中一种。

一般来说makefile在执行过程中会自动加载环境变量,如果在某些情况下不能自动加载识别,可以通过变量定义的方式实现。

在makefile文件中定义普通变量

variable = xxxxx

test_case = case_name

如果makefile的命令行输入了variable的值,则会用命令行的值代替makefile文件中定义的值。比如:

make sim test_case=case_name_0

注:上一句中的sim是makefile中的一个target,表示之行makefile中的sim目标,其中test_case为case_name_0

这里就用case_name_0代替了makefile文件中预先定义的case_name。

变量的引用格式如下:

$(test_case)

变量也可以传递,比如

variable1 = henghenghaha

variable2 = tuntuntutu

variable3 = $(variable1)_$(variable_2)

variable3展开后则是henghenghaha_tuntuntutu

变量还可以追加,比如发现variable1少了个后缀,

则可以使用如下方法追加:

variable1+=后缀

当然变量追加一般用不到,如果真少了什么可以直接在该变量定义处修改。

2.2 目标定义

标准的makefile语法格式如下,包含了目标target,依赖文件filename,和相应的命令行语句(用table键开头)

target:filename

        命令行1

        命令行2

如果没有依赖文件,则称为伪目标。而在IC设计的flow中用得最多的是伪目标,比如,编译-compile,仿真-sim,打开波形-verdi,清除生成的文件-clean。

注:伪目标不能和任何一个相关文件同名,如果同名,则需在makefile的前面显式声明伪目标名,如下:

.PHONY : clean

2.3 命令行的定义

命令行是指在该目标下要执行的操作,每一行代表一组相关命令。每两行之间的命令没有关系,即该命令依赖于前面命令的执行结果,则需要将它们放在同一行中,并用分号隔开。

如果要在target中先进到subdir目录下,新建一个new_file的文件,则应该如下写

target:cd /subdir; mkdir new_file

如果写成如下这样,则表示先进到subdir目录,然后在makefile当前目录新建一个new_file的文件。

target:cd /subdirmkdir new_file

2.4 通配符的使用

常用到的通配符有*,*代表任意符号。

*.v指所有的.v文件

2.5 makefile的错误处理

makefile是按照顺序一行一行的执行的,如果其中某条指令的结果出现错误则会导致后续指令的之行。但可以通过设置忽略出现的错误,继续往下之行,方法有两种:

局部方法,在出错的命令前加减号-,用于忽略该条指令的错误结果,不影响后续的指令执行,如:

clean :-rm -rf *.o

 全局的方法,定义相关参数,用-i或者--ignore--errors或者-k或者--keep--going

2.6 显式打印信息

@echo $(test_case)

则会打印出具体的test_case的名字 

2.7 条件语句的使用

在满足A条件时之行A组命令,在满足B条件时执行B组命令时需要用到条件语句,这里的条件格式如下:

ifeq($(variable_a),A)
xxxxx
endif或者ifeq($(varialbe_a),A)
xxxxx
else
xxxxx
endif

当然ifeq和ifneq的用法一样,前者是条件等于时执行,后者是条件不等时之行。$(varialbe_a)是变量,A是目标值或者参考值。 

2.8 举例

1 vcs_options = -V -Mupdate -full64 -debug_pp -sverilog +v2k +notimingcheck +no_tchk_msg \
2               -p $(VERDI_HOME)/share/PLI/VCS/linux64/verdi_tab \
3               $(VERDI_HOME)/share/PLI/VCS/linux64/pli.a \
4               +vcs_v2k+pathpulse+delay_mode_path+fsdb+sva_success \
5               +vcs+initreg+config \
6               -cm line+cond+tgl+fsm+branch -cm_dir ../../cov/$(TC).vdb -cm_hier ../cov_config.f \
7               +error+1000\
8               +nospecify \
9               +lint=TFIPC-L \
10              -assert report=../../log/$(tc_name)_assert.report+verbose \
11              +define+vcs+sdfverbose+ASIC+FSDB+BT_EMPTY+$(DF)+$(TARGET)+$(TC)+RD=0.1 \
12              -Marchive=128+noinline-transport-pathpulse -timescale=1ns/1ps -notice 
13
14 find_testcase:15 matlab:
16    matlab xxxxxxxxx 
17
18 compile:
19    vcs $(VCS_OPTIONs) \
20    +incdir+../../tb/reg_model/ \
21    -f ../../tb/reg_model/reg_model.f \
22    -y ../../tb/reg_model/ +libext+.v \
23    -f ../../filelist/design.f \
24    ./$(tc_name).sv \
25    -f ../../filelist/tb.f \
26    -top $(TB_SIM_TOP) \
27    -l ../../log/$(tc_name)_vcs_compile.log \
28    ./simv +ntb_random_seed=$(seed) +no_pulse_msg +fsdb+force+region +fsdb+sva_success 29    -cm line+cond+tgl+fsm+branch \
30    -l ../../log/$(tc_name)_vcs_sim.log; \
31    mv -f ./*.fsdb /fsdb/ \
32    perl log_check.pl -TC $(tc_name)
33
34
35 verdi:
36    @echo $(tc_name)
37    @test -d $(tc_name) || mkdir -p ./$(tc_name)
38    @echo "verdi -sv -logdir . +systemverdilogext+.sv+define+ASIC+$(DF)+$(TARGET)+$(TC)+RD=0.1 \\"    >vdrun
39    @echo "+incdir+../../tb/reg_model/ "\
40    @echo "-f ../../tb/reg_model/reg_mode.f" \
41    @echo "-y ../../tb/reg_model/ +llibext+.v" \
42    @echo "-f ../../filelist/design.f \\" >>vdrun
43    @echo "./$(tc_name).sv \\"   >>vdrun
44    @echo "-f ../../filelist/tb.f \\"   >>vdrun
45    @echo "-ssf /fsdb/*.fsdb \\"   >>vdrun
46    @echo "-top $(TB_SIM_TOP)" "&" >>vdrun
47    mv vdrun ./$(tc_name); cd/$(tc_name); source ./vdrun; cd ../

 例子是功能仿真makefile的部分内容,里面涉及到了变量的定义和使用,目标的建立,命令的执行等内容。

3 相关链接:

Makefile教程(绝对经典,所有问题看这一篇足够了)-CSDN博客

Makefile入门(介绍、规则、语法、函数、实例)_mak file 单冒号-CSDN博客

 最近在思考flow的东西,所以再次梳理整理了一下makefile的内容,笔记先记到这里,这是一个工具,还是要多用才会熟能生巧。后续有修改或补充再增删文件内容……

http://www.yayakq.cn/news/179766/

相关文章:

  • 有什么网站可以做做视频的网站多少钱
  • 创意礼物网站建设与管理电子销售网站模板免费下载
  • 博学云网站建设长沙做网站的公司对比
  • 电子商务企业网站设计网站弹出代码
  • app网站制作软件有哪些杭州手机模板建站
  • 网站首页优化的目的郑州知名网站建设公司排名
  • 西安建设网站平台发卡网站搭建
  • 服务器与网站东莞市专注网站建设品牌
  • 用python做网站后台网店美工实训报告
  • 同时做几个网站互相链接网站做的一样侵权吗
  • php网站开发实例教程案例档案网站建设外包公司
  • 淘宝客如何新建网站王磊网络网站建设
  • 做网站大概要多wordpress网站登录被篡改
  • 网站扁平化网站干什么的
  • 网站上线 备案专业的专业的网页制作公司
  • 免费站长工具电子商务
  • 单招网站开发广州专业做继承案件律师
  • 网站建设具体建设流程雪箭 wordpress 2.4主题下载
  • rp做网站wordpress系统是什么意思
  • 上海企业网站设计公司湖南省建设工程招标网
  • 大型游戏门户网站织梦模板网站建设进展推进表
  • 公司做网站所上传的产品图片建筑工程网下载
  • 做网站 广告收入在线qq登录入口
  • 网站建设实训不足手机网页制作作品
  • 怎样做微课网站怎么0成本做网站
  • 美团如何进行网站的建设和维护包装设计效果图
  • 软件ui设计怎么做网站中信建设有限责任公司湖南省人防建筑设计院
  • 个人相册网站模板app研发的设计流程
  • 培训学校网站模板有名的互联网公司
  • 网站跳转链接生成东营经济技术开发区