精华内容
下载资源
问答
  • 这时候就会想,如果能把原理图和PCB布局联合起来就好了,原理图后,PCB时那部分电路的布局也能直接拖出来,这样能极大的提高效率。其实,Cadence提供了将原理图和PCB布局结合起来做成一个module(模块)的功能...

    有些电路原理图是固定的,PCB布局也大体固定。这时候就会想,如果能把原理图和PCB布局联合起来就好了,画好原理图后,画PCB时那部分电路的布局也能直接拖出来,这样能极大的提高效率。其实,Cadence提供了将原理图和PCB布局结合起来做成一个module(模块)的功能。module可以称为复用模块、模块 或者 复用电路。

    下面将详细介绍如何做成module,以及如何使用module。

    1.绘制Module的原理图

    1.1 画好要复用的电路的原理图

    注意输入输出要用port引出,此port就对应层次化电路图的端子。

    image-20201224220048896

    1.2 给元器件增加reuse属性

    Tool -> Annotate…,打开Annotate窗口。

    image-20201225215945231

    在Annotate窗口的PCB Editor标签页中,勾选Generate Reuse module(生成复用模块),点击确定。

    image-20201224220641920

    弹出以下两个窗口,点击确定。

    image-20201224220940081

    image-20201224220958681

    按Ctrl + S保存设计,然后选择任意器件,右击 -> Edit Property,查看其属性。如下图,可以发现,当前属性增加了两项:REUSE_ANNOTATE REUSE_ID。这两个属性就是原理图与PCB间器件一一对应的纽带。

    image-20201224221709010

    1.3 导出网表

    Tools -> Create Netlist…,打开创建网表窗口,导出网表。

    image-20201224222205797

    2.绘制Module的PCB

    2.1 新建*.brd,导入网表,绘制好布局

    如下图所示,不需要布线100%。

    image-20201225005306389

    2.2 创建PCB module

    Tools -> Create Module…

    image-20201224222955755

    然后,框选要生成Module的PCB部分,再单击选择原点,弹出保存*.mdd文件的对话框,如下图所示。

    image-20201224223528569

    mdd文件名 = dsn文件名_原理图页名

    注意:1.文件名不区分大小写;2.mdd文件必须按此规则命名,否则在调用时Allegro会提示找不到对应mdd。

    这里的dsn文件名为getmdd,加上下划线_,再加上原理图页名12Vto24V。当然你这里随便取个名字,然后在资源管理器中对*.mdd重命名也可以,效果一样。

    保存mdd文件,在资源管理器中可以看到*.mdd文件前的图标与brd文件相同,其实mdd文件可以用Allegro进行编辑,就像操作brd一样。当然,你如果直接把brd文件后缀改为mdd是不行的,Allegro打不开。

    image-20201224224402834

    所以。在2.1那一步直接新建*.mdd文件就可以了,然后导入网表进行布局布线,就无需从brd文件中create module了。

    推荐直接建立mdd文件,如下图,而不是建立brd文件后Create Module。

    image-20201225005643689

    2.4 设置modulepath

    Allegro要调用mdd文件,会去modulepath指定的路径中搜索,所以要先设置modulepath,然后将生成的mdd文件放入modulepath指定路径。

    Setup -> User Preferences…,打开用户首选项设置,搜索module即可找到modulepath。

    image-20201225003534199

    3.使用Module

    新建一个原理图工程,在此工程中试验复用module,步骤如下。

    3.1 放置层次化BLOCK

    Place -> Hierarchical Block…,放置层次化块,设置如下。

    image-20201224233648029

    点击OK后,用鼠标绘制出方框,我这里绘制了一个,又复制了一个。可以双击进入BLOCK内部查看电路。

    image-20201225002038857

    特别注意:这里的BLOCK是引用而不是复制,也就是说,BLOCK绘制好后,如果BLOCK指向的dsn文件发生更改,BLOCK会跟着变化,如果dsn文件改名了或者被删除了,BLOCK就会找不到dsn导致错误。所以,上图的两个BLOCK,你双击任意一个进入修改电路,保存,双击另一个BLOCK进去查看,电路也被修改了,这就说明了这里的BLOCK是引用,两个BLOCK只是名字不同(BLK1,BLK2),指向的电路是同一个。

    可进行任意设计,像正常画原理图一样。

    3.2 Annotate位号重排与指定mark

    原理图画完后,Tool -> Annotate…,打开Annotate窗口。如下图设置,点击OK。会执行位号重排,同时指定好BLOCK对应的module。

    image-20201225001242856

    3.3 导出网表

    Tools -> Create Netlist…。同1.3节一样。

    3.4 新建brd,试试复用效果

    导入网表后,Place -> Manually…,打开Placement窗口,如下图所示。可以看到Components by refdes中,BLOCK内的元器件呈黄色,BLOCK外的呈粉红色。再看Module instances,可以看到两个BLOCK对应的mdd。

    image-20201225002823424

    放置两个Module instances(模块实例),效果如下图所示。

    image-20201225004249042

    可以看到,元器件位号会跟随原理图自动变化,原本的布局布线包括丝印等与mdd保持一致。mdd有个外框框住,表示这是一个group,find中选中groups,可以整体移动,选中symbles可以移动单个器件,很灵活。

    4.Module原理说明

    为什么module中的器件原理图和PCB能对应上?一是mdd文件的名字,是dsn名_原理图页名,这让软件可以找到那个原理图;二是复用的原理图执行了pcb editor reuse,添加了REUSE_ID这个属性,软件能根据这个属性准备对应每个器件,所以原理图中的位号变了,mdd布局还是不会乱,可以知道mdd并不像brd一样依赖位号确定元器件,而是利用REUSE_ID。

    5.更新Module原理图与PCB

    1)复用的原理图内部修改后,只要port 口没有变,则使用它的原理图中的BLOCK不用手动同步,因为BLOCK是引用,同步是自动的,实时的。而如果port口变化了,则需要右击BLOCK -> Synchronize Up

    image-20201225213838562

    2)做好的模块文件用在 pcb 中后,若需要修改这部分文件,可以打开对应的mdd文件,然后在原 pcb 中使用 update symbol 功能,选相应的 moddle进行更新。当然,你也可以直接修改复用PCB模块的单个器件,不过这时你如果update modules,布局又会回到mdd的布局了。

    image-20201225214101485

    展开全文
  • 层次原理图中是有包含的关系,这里我们介绍一下层次原理图自上而下设计思路,按照以下的步骤即可:第一步,创建分级的模块Hierarchical Block,在原理图设计的页面,执行命令Place->Hierarchical Block…,如图...

    【ORACD原理图设计90问解析】第52问 层次式原理图是如何绘制的?

    :层次原理图中是有包含的关系,这里我们介绍一下层次原理图自上而下设计思路,按照以下的步骤即可: 第一步,创建分级的模块Hierarchical Block,在原理图设计的页面,执行命令Place->Hierarchical Block…,如图3-109所示: 图3-109  层次原理图创建分级模块示意图第二步,在弹出的对话框中,输入分级模块的名称,如图3-110所示,选择合适的参数,一般如图3-110所示设置即可,点击OK,则层次式原理图分级模块创建完毕; 图3-110  层次原理图分级模块参数设置示意图第三步,在原理图页面画出合适的分级模块框框的大小,这个也可以后面进行调整,如图3-111所示,用于分配子端口的以及总线的位置; 图3-111  层次原理图分级模块方框设置示意图第四步,双击新生成的图框,或者选中图框进行右击,选择Descend Hierarchy,如图3-112所示,进行子图的设置; 图3-112  层次式原理图子图设置示意图第五步,在弹出来的对话框中填写原理图页面名,然后点击“OK”按钮,如图3-113所示,设置子图的原理图页的名称; 图3-113  层次式原理图子图页设置示意图第六步,然后可以在新生成的原理图页面中进行原理图的子图绘制设置,并放置好与总框图的接口Hierarchical Port,如图3-114所示; 图3-114  层次式原理图子图原理图绘制示意图第七步,双击放置的Hierarchical Port名,修改其名称,点击“OK”退出,如图3-115所示; 图3-115  端子设置示意图第八步,然后返回到放置Hierarchical Block的页面,选中已放置好的框并右击选取Synchronize Up,然后在此框边缘会出面子原理图页面中的Hierarchical Port,如图3-116所示; 图3-116  端子设置示意图第九步,然后可选取需修改的Hierarchical Port右击,选取Edit Properties进行编辑,如图3-117所示; 图3-117 属性设置示意图第十步,在弹出来的对话框对其属性进行修改,然后保存退出即可,如图3-118所示,这样我们的层次原理图的模块就绘制完毕了,其它模块跟这个流程是一样的,这里就不在赘述了。 图3-118 属性修改示意图

    展开全文
  • matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形,所以matplotlib有三个层次的API:matplotlib.backend_bases.FigureCanvas 代表了绘图区,所有的图像都是在绘图区完成的 ...

    艺术画笔matplotlib.artist.Artist类

    matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形,所以matplotlib有三个层次的API:matplotlib.backend_bases.FigureCanvas 代表了绘图区,所有的图像都是在绘图区完成的
    matplotlib.backend_bases.Renderer 代表了渲染器,可以近似理解为画笔,控制如何在 FigureCanvas 上画图。
    matplotlib.artist.Artist 代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图。
    前两者处理程序和计算机的底层交互的事项,第三项Artist就是具体的调用接口来做出我们想要的图,比如图形、文本、线条的设定。
    Artist有两种类型:primitives 和containers。
    primitive是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。
    container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。
    图形坐标系和坐标轴

    常见图形绘制

    1. 折线图主要用plot()函数绘制
    常用的参数有:
    xdata:需要绘制的line中点的在x轴上的取值,若忽略,则默认为range(1,len(ydata)+1)
    ydata:需要绘制的line中点的在y轴上的取值
    linewidth:线条的宽度
    linestyle:线型
    color:线条的颜色

    # 1. 折线图
    # plt.plot(x)
    # plt.show()
    
    fig, ax = plt.subplots()
    x = [1, 2, 3]
    ax.plot(x, c='red', lw=2, linestyle='dashed')
    plt.show()
    

    2. hist-直方图
    x: 数据集,最终的直方图将对数据集进行统计
    bins: 统计的区间分布
    range: tuple, 显示的区间,range在没有给出bins时生效
    density: bool,默认为false,显示的是频数统计结果,为True则显示频率统计结果,这里需要注意,频率统计结果=区间数目/(总数*区间宽度),和normed效果一致,官方推荐使用density
    histtype: 可选{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}之一,默认为bar,推荐使用默认配置,step使用的是梯状,stepfilled则会对梯状内部进行填充,效果与bar类似
    align: 可选{‘left’, ‘mid’, ‘right’}之一,默认为’mid’,控制柱状图的水平分布,left或者right,会有部分空白区域,推荐使用默认
    log: bool,默认False,即y坐标轴是否选择指数刻度
    stacked: bool,默认为False,是否为堆积状图

    # 2. hist()函数绘制直方图
    # 生成数据集x
    x = np.random.randint(0, 100, 100)  # 生成100个整数在[0,100)内,如果是random.randint(0,100)则生成的数在[0,100]内,不过不能指定次数
    # 生成统计区间
    bins = np.arange(0, 101, 5)
    # 开始画图
    plt.hist(x, bins, color='red', alpha=0.8)  # alpha是透明度
    plt.xlabel('数值')
    plt.ylabel('数值出现的次数')
    plt.title('直方图')
    plt.show()
    

    3. bar-柱状图
    left:x轴的位置序列,一般采用range函数产生一个序列,但是有时候可以是字符串
    height:y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据;
    alpha:透明度,值越小越透明
    width:为柱形图的宽度,一般这是为0.8即可;
    color或facecolor:柱形图填充的颜色;
    edgecolor:图形边缘颜色
    label:解释每个图像代表的含义,这个参数是为legend()函数做铺垫的,表示该次bar的标签

    y = range(1, 17)
    plt.bar(np.arange(16), y, alpha=0.5, color='red', edgecolor='blue', lw=2, width=0.5, label='bar')
    plt.show()
    

    4. fill-填充线图(多边形图)

    # 4. 多边形图
    fig, ax = plt.subplots(1, 2)
    x = np.linspace(0, 5*np.pi, 100)
    y = np.sin(x)
    ax1 = ax[0]
    ax2 = ax[1]
    ax1.fill(x, y, c='g', alpha=0.5)
    ax2.fill([0, 1, 3, 2])
    plt.show()
    

    5. pie-饼状图
    x:契型的形状大小,一维数组列表也可以。
    explode:如果不是等于None,则是一个len(x)数组,它指定用于偏移每个楔形块的半径的分数。
    labels:用于指定每个契型块的标记,取值是列表或为None。
    colors:饼图循环使用的颜色序列。如果取值为None,将使用当前活动循环中的颜色。
    startangle:饼状图开始的绘制的角度。

    # 5. pie-饼状图
    labels = ['bicycle', 'car', 'airplane', 'ship', 'walk']
    size = [15, 50, 5, 5, 20]
    explode = [0, 0.1, 0, 0, 0]
    plt.pie(size, labels=labels, autopct='%1.1f%%', explode=explode)
    plt.show()
    

    6. scatter绘制散点图
    x:数据点x轴的位置
    y:数据点y轴的位置
    s:尺寸大小
    c:可以是单个颜色格式的字符串,也可以是一系列颜色
    marker: 标记的类型

    # 6. 散点图
    x = [0, 2, 4, 6, 8, 10] 
    y = [10]*len(x) 
    s = [20*2**n for n in range(len(x))] 
    plt.scatter(x,y,s=s) 
    plt.show()
    

    7. inshow()来根据数组绘制图片

    grid = np.random.rand(4, 4)
    # plt.imshow(grid)
    # plt.show()
    methods = [None, 'none', 'nearest', 'bilinear', 'bicubic', 'spline16',
               'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric',
               'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos']
    fig, axs = plt.subplots(nrows=3, ncols=6, figsize=(9, 6), subplot_kw={'xticks': [], 'yticks': []})  # subplot_kw来设置刻度
    for ax, method in zip(axs.flat, methods):
        ax.imshow(grid, interpolation=method)
        ax.set_title(str(method))  # 加str是为了是第一个None显示出来
    
    plt.show()
    

    对象容器

    主要有Figure,Axes,Axis,Tick四种容器

    1. Figure容器
    Figure包含了图表中的所有元素,一张图表的背景就是在Figure.patch中的一个矩形Rectangle,当我们向图表添加Figure.add_subplot()或者Figure.add_axes()元素时,这些都会被添加到Figure.axes列表中。

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig = plt.figure()
    ax1 = fig.add_subplot(211)  # 作一幅2*1的图,选择第1个子图,这里只显示你选择的那个子图
    ax2 = fig.add_axes([0.3, 0.2, 0.7, 0.3])  # 位置参数,四个数分别代表了(left,bottom,width,height)
    # fig, ax = plt.subplots()  # 里面没有参数,则只有一个子图,如果有参数,则返回多个子图
    # fg, axes = plt.subplots(2, 2)
    # axes[0, 0].plot([1, 2, 3])
    ax1.grid(True)  # 设置网格
    print(fig.axes)
    plt.show()
    

    2. Axes容器
    和Figure容器类似,Axes包含了一个patch属性,对于笛卡尔坐标系而言,它是一个Rectangle;对于极坐标而言,它是一个Circle。这个patch属性决定了绘图区域的形状、背景和边框。Axes有许多方法用于绘图,如.plot()、.text()、.hist()、.imshow()等方法用于创建大多数常见的primitive(如上面说的那几种)。Subplot就是一个特殊的Axes。

    fig, ax = plt.subplots(1, 2)
    ax[0].patch.set_facecolor('green')
    ax[1].patch.set_facecolor('red')
    plt.show()
    

    3. Axis容器
    matplotlib.axis.Axis实例处理tick line、grid line、tick label以及axis label的绘制,它包括坐标轴上的刻度线、刻度label、坐标网格、坐标轴标题。通常你可以独立的配置y轴的左边刻度以及右边的刻度,也可以独立地配置x轴的上边刻度以及下边的刻度。

    # 3. Axis容器
    # axis = ax.xaxis # axis为X轴对象
    # axis.get_ticklocs()     # 获取刻度线位置
    # axis.get_ticklabels()   # 获取刻度label列表(一个Text实例的列表)。 可以通过minor=True|False关键字参数控制输出minor还是major的tick label。
    # axis.get_ticklines()    # 获取刻度线列表(一个Line2D实例的列表)。 可以通过minor=True|False关键字参数控制输出minor还是major的tick line。
    # axis.get_data_interval()# 获取轴刻度间隔
    # axis.get_view_interval()# 获取轴视角(位置)的间隔
    
    fig = plt.figure() # 创建一个新图表
    rect = fig.patch   # 矩形实例并将其设为黄色
    rect.set_facecolor('lightgoldenrodyellow')
    
    ax1 = fig.add_axes([0.1, 0.3, 0.4, 0.4]) # 创一个axes对象,从(0.1,0.3)的位置开始,宽和高都为0.4,
    rect = ax1.patch   # ax1的矩形设为灰色
    rect.set_facecolor('lightslategray')
    
    for label in ax1.xaxis.get_ticklabels():
        # 调用x轴刻度标签实例,是一个text实例
        label.set_color('red')  # 颜色
        label.set_rotation(45)  # 旋转角度
        label.set_fontsize(16)  # 字体大小
    
    for line in ax1.yaxis.get_ticklines():
        # 调用y轴刻度线条实例, 是一个Line2D实例
        line.set_color('red')    # 颜色
        line.set_markersize(18)    # marker大小
        line.set_markeredgewidth(3)  # marker粗细
    
    plt.show()
    

    4. Tick容器

    # 4. Tick容器
    fig, ax = plt.subplots()
    ax.plot(100*np.random.rand(20))
    
    # 设置ticker的显示格式
    formatter = matplotlib.ticker.FormatStrFormatter('$%1.2f')
    ax.yaxis.set_major_formatter(formatter)
    
    # 设置ticker的参数,右侧为主轴,颜色为绿色
    ax.yaxis.set_tick_params(which='major', labelcolor='green',
                             labelleft=False, labelright=True)  # which是选择对主或者副坐标轴进行操作
    
    plt.show()
    
    展开全文
  • 其实这门课在课表中叫做“计算机组织与结构”,...给一组最小项,出卡诺并写出最简逻辑表达式 解释周期窃取,并说明为什么DMA方式不能取代程序中断方式 什么是寻址方式,画图解释寄存器间接寻址 根据屏蔽字画出CP

    其实这门课在课表中叫做“计算机组织与结构”,不过教材是《计算机组成原理》。好了,开始进入正题。
    2020年1月3号8:30~10:30,大二上学期计组考试。

    一.计算题 4道

    1. 浮点数的表示范围,规格化
    2. 补码加减法
    3. 使用加减交替法计算原码一位除
    4. 相对寻址位移量和有效地址计算

    二.简答题 6道

    1. 计算机如何区分指令和数据
    2. 如何理解存储器的层次结构
    3. 给一组最小项,画出卡诺图并写出最简逻辑表达式
    4. 解释周期窃取,并说明为什么DMA方式不能取代程序中断方式
    5. 什么是寻址方式,画图解释寄存器间接寻址
    6. 根据屏蔽字画出CPU轨迹

    三.分析题 2道

    1. 四路组相连三个问,第一问:主存地址格式;第二问:Cache地址格式;第三问:直接映射下,映射到哪一块
    2. 给一个数据通路结构,让你完成直接寻址的指令操作(取指周期和执行周期),ADD~(是双字长)

    四.设计题 2道

    1. 时序设计,每个周期3个脉冲,共3个周期(总之搞明白实验就行),让你画出逻辑电路图并说明过程
    2. CPU和存储芯片的连接(字、位扩展),第一问:每个芯片的地址范围;第二问:画图

    预祝各位学弟学妹期末95+

    展开全文
  • 计算机组成原理课后参考答案

    热门讨论 2012-05-01 21:49:31
    1.9 出主机框图,分别以存数指令“STA M”和加法指令“ADD M”(M均为主存地址)为例,在中按序标出完成该指令(包括取指阶段)的信息流程。假设主存容量为256M×32位,在指令字长、存储字长、机器字长相等的...
  • 最近层次原理图(2层) 出现网络标号重复的问题。Duplicate Net Names Wire ***,这是因为我在不同的原理图中使用了相同的网络标号。 查了一下资料。需要设置网络标号的识别范围,即“Port”和“Net label”的...
  • 先上效果(支持自定义扩展格数,背景和阴影颜色以及圆角大小)ps:暂不支持滑动动画效果,后期会...如层次结构,我就不解释了这么简单,应该都能看懂哈哈哈哈哈。源码下面附上。 使用的时候直接setmPosition()
  • 不会介绍每个优化项目具体如何操作。PS:后续会有系列文章针对不同优化分类下的具体优化操作进行更详细的介绍。 <h2>1. 度量标准与设定目标 在进行性能优化之前,我们需要为应用选择一个正确的度量标准&...
  • 示例描述:本章演示如何使用WPF的形状、变换和刷来绘制图形。 BitmapEffectsDemo 位图效果使用示例。 DashLine 虚线绘制示例。 ImageBrushDemo1 图像刷使用示例。 LineCapDemo WPF线帽示例。 ...
  • matplotlib 第二章学习

    2020-12-18 23:54:37
    matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。 matplotlib有三个层次的API: matplotlib.backend_bases.FigureCanvas 代表了绘图区,所有的图像都是在绘图区完成的 matplotlib...
  • 本文件夹按照层次原理图方法实现原理图设计。 (1)sam.schlib:自己设计的原理图元件库。 (2)Exapcb.lib:自己设计的元件封装库。 (3)Total.Schdoc:方块原理图电路。 (4)CPU.Schdoc:小系统原理图电路模块。 ...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维护的一门工程学科。  软件工程的原则 任务2 软件生命周期与软件开发模型 软件生命周期 软件开发模型 ...
  • 产品经理学习视频

    2018-07-27 14:21:07
    4-如何绘制流程.mp4 5-任务流程.mp4 6-页面流程.mp4 7-绘制流程的思路和工具.mp4 8-Axure绘制简单业务流程.mp4 9-Excel绘制甘特.mp4 10-Visio绘制泳道.mp4 11-PPT绘制页面流程.mp4 12-...
  • JavaScript是如何工作的: CSS 和 JS 动画底层原理如何优化它们的性能 JavaScript 是如何工作的:解析、抽象语法树(AST)+ 提升编译速度5个技巧 JavaScript是如何工作的:深入类和继承内部原理+Babel和 ...
  • 第2 章 Windows 程序内部运行原理 2.1 Windows 应用程序,操作系统,计算机硬件之间的相互关系 2.1.1 关于API (1,没有) 2.1.2 关于消息及消息队列 (1、2 没有) 2.2 什么是句柄 2.3 谈谈WinMain 函数...
  • 全书共12章,分为三个层次:基本原理方法篇(第一~六章)介绍了Pentium工作方式和扩展技术,16/32位寄存器,存储寻址机制,指令寻址与指令系统,汇编语法与伪指令,顺序分支和循环程序设计,子程序嵌套与违归及COM...
  • 《捕鱼达人》代码大揭秘,传授大家如何做一个《捕鱼达人》的原型。 作者简介 马朔 广州火烈鸟网络科技有限公司CEO,带领团队参与了《捕鱼达人》系列游戏的技术开发以及Cocos2d-x for Windows Phone 7的技术移植。在...
  • 本书是Visual Basic较为深入的内容,提供了大量的在软件开发中十分重要而用Visual Basic无法实现的功能,可供具有Visual Basic程序设计基础和一定实践经验,需要进一步深入了解Visual Basic,进行较高层次软件开发的...
  • iPhone开发秘籍(第2版)--详细书签版

    热门讨论 2012-12-11 13:42:25
    此外,还结合实例讲解了如何开发各种iphone特性,包括视图、视图控制器、警告、表格、媒体、控件、人物、位置和事件。  《iphone开发秘籍(第2版)》适合iphone和mac开发人员。 作译者 作者:(美国)萨丹(Erica ...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    此外,还结合实例讲解了如何开发各种iphone特性,包括视图、视图控制器、警告、表格、媒体、控件、人物、位置和事件。  《iphone开发秘籍(第2版)》适合iphone和mac开发人员。 作译者 作者:(美国)萨丹(Erica ...
  • 功能层次模型:一般来讲就是系统的功能,模块分布等描述整个系统的功能的分布和功能的层次结构; 数据流模型:就是以数据流为着眼点的分析方法得到的模型,主要通过数据在整个系统的流动情况来确定系统的主要...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

如何画层次原理图