第二章 低级建模的基础

合集下载

汽车系统动力学第二章 车辆动力学建模方法及基础理论

汽车系统动力学第二章  车辆动力学建模方法及基础理论

第二章车辆动力学建模方法及基础理论§2-1 动力学方程的建立方法在车辆动力学研究中,建立系统运动微分方程的传统方法主要有两种:一是利用牛顿矢量力学体系的动量定理及动量矩定理,二是利用拉格朗日的分析力学体系。

本节将对这两种体系作一简单回顾,并介绍几个新的原理。

一牛顿矢量力学体系(1)质点系动量定理质点系动量矢p对时间的导数等于作用于质点系的所有外力F i的矢量和(即主矢),其表达式为:二、分析力学体系分析力学是用分析的方法来讨论力学问题,较适合处理受约束的质点系。

(1)动力学普遍方程动力学普遍方程由拉格朗日(Lagrange)于1760年给出的,方程建立的基本依据是虚位移原理,表示如下:(2-6)(2)拉格朗日方程拉格朗日法的基本思想是将系统的总动能和总势能均以系统变量的形式表示,然后将其代入拉格朗日方程,再对其求偏导数,即可得到系统的运动方程。

拉格朗日方程形式如下:利用此方程推导车辆动力学方程时,因采用广义坐标,从而使描述系统位移的坐标数量大大减少,并可以自动消去无功内力。

但也存在下述问题:①应用拉格朗日方程时,有赖于广义坐标选取得是否得当,而适当地选择广义坐标有时要靠经验;②拉格朗日能量函数对于刚体系统的表达式可能非常复杂,代人拉格朗日方程后要作大量运算。

而对于复杂的车辆系统,写出能量函数的表达式就更加困难。

三、虚功率原理若丹(Jourdain)于1908年推导出另一种形式的动力学普遍方程,其所依据的原理称之为虚功率原理。

虚功率形式的动力学普遍方程为:四、高斯原理1829年,高斯(Gauss)提出动力学普遍方程的又一形式,称为高斯原理,其表达式为:§2-2 非完整系统动力学一、非完整系统动力学简介1894年,德国学者Henz第一次将约束系统分成“完整”和“非完整”两大类,从此开辟了非完整系统动力学(Nonholonomie System)的新领域,如今它已成为分析力学的一个重要分支。

建模基础知识

建模基础知识

第章建模基础知识建模技术是CAD系统的核心技术,计算机集成制造系统(CIMS)的水平与集成在很大程度上取决于三维几何建模软件系统的功能与水平。

对于现实世界中的物体,从人们的想象出发,利用交互的方式将物体的想象模型输入计算机,计算机以一定的方式将模型存储起来,这个过程称为建模。

即首先研究物体的描述方法,得到一种想象模型(亦即外部模型),它表示了用户所理解的事物及事物间的关系,然后将这种模型转化为用符号或算法表示的形式,最后形成计算机内部的模型。

因此,建模过程就是一个产生、存储、处理、表达现实世界的过程。

在实际的产品设计中,建模可以分为几何建模和特征建模两种类型,分别介绍如下。

1.1 认识几何建模几何建模是指形体的描述和表达是建立在几何信息和拓扑信息基础上的建模。

其主要处理零件的几何信息和拓扑信息。

几何信息一般是指物体在欧氏空间(欧氏几何所研究的空间称欧氏空间,它是现实空间的一个最简单并且相当确切的近似描述)中的形状、位置和大小,一般指点、线、面、体的信息。

拓扑信息则是指物体各分量的数目及其相互间的连接关系。

目前常用的三维几何建模包括线框、表面和实体建模。

1.线框建模线框建模用一系列空间直线、圆弧和点表示形体,并在计算机内部生成相应的三维映像。

通过修改点和边来改变形体的形状。

与该模型相关的数学表达式是直线或曲线方程、点的坐标以及边和点的连接信息。

线框模型描述的是产品的轮廓外形。

在CAD/CAM 软件中,线框模型相当于投影视图中的轴测图,此类投影视图也属于平行投影,且只有一个投影面。

当物体的3个坐标面不与投影方向一致时,则物体平行于3个坐标面的平面的轴测投影在轴测投影面中都得到反映,因此,物体的轴测投影才有较强的立体感。

例如,在Pro/E 的工程图环境中,打开【绘图视图】对话框,并创建轴测图,如图1-1所示。

线框建模所构造的实体模型只有离散的边,而没有边与边的关系,与该模型相关的数学表达式是直线或曲线方程、点的坐标及边和点的连接关系。

第2章 UG NX 10.0 建模基础

第2章 UG NX 10.0 建模基础

寸、形状和位置,以满足设计要求。
2.1.1 草图环境
1.进入和退出草绘环境 新建一个文件,进入建模环境后,可选择菜单“插入”→“任 务环境中的草图”,系统进入草图环境。 进入草绘环境后,“草图工具”工具条中的草绘命令被激活, 如图2-1所示。 绘制草图后,单击按钮,系统退出草图环境。
图2-1 2.草图环境设置 进入草图环境后,选择菜单“首选 项”→“草图”命令,弹出如图2-2 所示的“草图首选项”对话框。在该 对话框中可以设置草图的显示参数和 默认名称前缀等参数。
创建一段圆弧,如图2-24所示,同时系统自动显示相切符号。双击图中的尺寸
R25.5,在弹出的文本框中输入R23.29并单击鼠标中键确认,绘制第一段圆弧,如 图2-25所示。
2.2 实体建模
2.2.1 实体建模概述
常用术语 UG 实体建模中,通常会使用一些专业术语,了解和掌握这些术语是用户进行实体
建模的基础,这些术语通常用来简化表述,另外便于与相似的概念相区别。UG实
2
1 选择该曲面
2 选择该边线 1
3
3
4
图2-133
3.N边曲面
使用“N边曲面”命令,可以通过曲线、实体或片体的边来创建曲 面。在模具设计中可以使用N边曲面对模型进行修补。
【例2-11】 创建N边曲面
2 选择曲线 1
1 3 选择边线 2
5 选择边线 4
6 4 选择边线 3
2.7.5 修剪片体
【例2-12】 修剪片体 1) 打开附带光盘ch02/eg/eg_13/xiujian.prt文件。 2) 选择菜单“插入”→“修剪”→“修剪片体”命令,打开“修剪 片体”对话框。选择曲面为目标体,选择圆为边界对象,在“投 影方向”下拉列表中选择“垂直于面”选项,单击“确定”按钮, 完成修剪。操作步骤如图2-136所示。

数学建模基础

数学建模基础

数学建模基础
数学建模是指利用数学方法和技巧对实际问题进行抽象和
描述,并通过建立数学模型来研究问题的方法。

数学建模
基础主要包括以下几个方面:
1. 数学知识:数学建模需要掌握一定的数学知识,包括数
学分析、线性代数、概率论与数理统计、微分方程等。


些数学知识可以帮助建模者理清问题的结构和逻辑关系,
从而构建合理的数学模型。

2. 数据分析能力:数学建模过程中需要处理和分析大量的
实际数据,包括收集数据、整理数据、统计分析数据等。

因此,建模者需要具备一定的数据分析能力,如数据挖掘、统计分析等。

3. 系统思维能力:数学建模需要从整体上把握问题的本质
和复杂性,涉及到系统思维能力。

建模者需要能够将问题
拆解成多个子问题,并对它们进行分类、分析和优化,最
终求解整个问题。

4. 编程能力:在数学建模中,常常需要使用计算机编程来实现数学模型的求解。

因此,建模者需要具备一定的编程能力,如使用MATLAB、Python等编程语言进行算法实现和数据处理。

5. 创新能力:数学建模是解决实际问题的方法,需要建模者拥有一定的创新能力。

建模者需要能够运用已有的数学理论和方法,创造性地将其应用于实际问题,并提出新的解决方案。

综上所述,数学建模基础包括数学知识、数据分析能力、系统思维能力、编程能力和创新能力等方面。

这些基础能力是进行有效数学建模的必备条件。

数学建模基础教程

数学建模基础教程

数学建模新手“必读教程”第一部分基本知识:一、数学模型的定义现在数学模型还没有一个统一的准确的定义,因为站在不同的角度可以有不同的定义。

不过我们可以给出如下定义:“数学模型是关于部分现实世界和为一种特殊目的而作的一个抽象的、简化的结构。

”具体来说,数学模型就是为了某种目的,用字母、数学及其它数学符号建立起来的等式或不等式以及图表、图象、框图等描述客观事物的特征及其内在联系的数学结构表达式。

一般来说数学建模过程可用如下框图来表明:数学是在实际应用的需求中产生的,要解决实际问题就必需建立数学模型,从此意义上讲数学建模和数学一样有古老历史。

例如,欧几里德几何就是一个古老的数学模型,牛顿万有引力定律也是数学建模的一个光辉典范。

今天,数学以空前的广度和深度向其它科学技术领域渗透,过去很少应用数学的领域现在迅速走向定量化,数量化,需建立大量的数学模型。

特别是新技术、新工艺蓬勃兴起,计算机的普及和广泛应用,数学在许多高新技术上起着十分关键的作用。

因此数学建模被时代赋予更为重要的意义。

二、建立数学模型的方法和步骤1. 模型准备要了解问题的实际背景,明确建模目的,搜集必需的各种信息,尽量弄清对象的特征。

2. 模型假设根据对象的特征和建模目的,对问题进行必要的、合理的简化,用精确的语言作出假设,是建模至关重要的一步。

如果对问题的所有因素一概考虑,无疑是一种有勇气但方法欠佳的行为,所以高超的建模者能充分发挥想象力、洞察力和判断力,善于辨别主次,而且为了使处理方法简单,应尽量使问题线性化、均匀化。

3. 模型构成根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量间的等式关系或其它数学结构。

这时,我们便会进入一个广阔的应用数学天地,这里在高数、概率老人的膝下,有许多可爱的孩子们,他们是图论、排队论、线性规划、对策论等许多许多,真是泱泱大国,别有洞天。

不过我们应当牢记,建立数学模型是为了让更多的人明了并能加以应用,因此工具愈简单愈有价值。

简述建模的几点基本原理

简述建模的几点基本原理

简述建模的几点基本原理建模是一个极其重要的过程,它可以帮助我们更好地理解和描述复杂的系统或问题。

在建模过程中,我们需要遵循一些基本原理,以确保我们所建模型的准确性和可靠性。

本文将简述建模的几点基本原理。

一、建模目标明确在建模之前,我们需要确定建模的目标和对象。

建模的目标应该是明确的,包括建模的目的、建模的应用和建模的对象。

只有在明确了建模目标之后,我们才能更好地确定建模的范围和内容,从而有效地进行建模。

二、建模数据准确建模的数据来源非常重要,建模数据的准确性直接影响到我们所建模型的准确性和可靠性。

因此,在建模之前,我们需要对建模数据进行仔细的筛选和处理,确保建模数据的准确性和完整性。

同时,我们还需要对建模数据进行合理的分类和归纳,以便更好地进行建模。

三、建模方法合理在建模过程中,我们需要选择合适的建模方法。

不同的建模方法适用于不同的问题和对象。

因此,在选择建模方法时,我们需要根据建模目标和对象的特点,选择合适的建模方法。

同时,我们还需要对所选建模方法进行深入的了解和研究,以确保建模方法的合理性和有效性。

四、建模过程透明建模过程应该是透明的,建模过程中所使用的方法和数据应该能够被其他人理解和重复。

只有在建模过程透明的情况下,我们才能保证所建模型的可靠性和有效性。

因此,在建模过程中,我们需要记录每一步所采取的方法和使用的数据,并将记录公开,以便其他人进行复查和验证。

五、建模结果可靠建模的最终目的是得到可靠的建模结果。

建模结果应该能够真实地反映所建模型的特征和规律。

因此,在得到建模结果之后,我们需要对建模结果进行仔细的分析和评估,以确保建模结果的可靠性和有效性。

同时,我们还需要对建模结果进行合理的解释和说明,以便其他人能够理解和使用建模结果。

综上所述,建模是一个极其重要的过程,我们需要遵循一些基本原则,以确保所建模型的准确性和可靠性。

建模过程需要明确建模目标,使用准确的建模数据,选择合适的建模方法,保持建模过程透明,得到可靠的建模结果。

建模培训教学课件ppt

建模培训教学课件ppt
建模培训教学课件ppt
xx年xx月xx日
目 录
• 建模基础知识 • 建模基本技法 • 建模高级技法 • 建模的实际应用 • 建模作品欣赏与学习 • 建模创作及作品展示
01
建模基础知识
建模简介
建模的定义
建模是将现实世界中的问题或需求转化为计算机可处理的形 式的过程。
建模的目的是
通过建立模型来模拟现实世界中的问题或需求,以便进行预 测、优化和决策。
解并掌握核心概念。 • 总结词:原理应用 • 详细描述:需要讲解原理的来源、原理的具体表示以及如何应用原理解决实际问题,帮助学员更好地掌握
建模的基本原理。 • 总结词:模型优化 • 详细描述:在建模过程中,需要对模型进行不断的优化和改进。需要讲解优化模型的思路和方法,帮助学
员提高建模水平。
建模高级技法-2
THANKS
谢谢您的观看
几何体建模
使用基本几何体进行拼接 、拉伸、缩放等操作,创 建基础模型
建模流程
创建中轴线→确定基本形 →制作细节→修整轮廓→ 完善模型
建模基本技法-2
布料材质制作
了解布料材质属性、调整布料材质 参数、应用布料贴图
毛发制作
掌握毛发生成器、调整毛发参数、 应用毛发贴图
场景制作
使用建模工具创建背景、道具等元 素,完善场景布局
经典建模方法
包括统计分析、优化理论和仿真等方法。
现代建模方法
包括机器学习、数据挖掘和人工智能等方法。
02
建模基本技法
建模软件介绍
软件名称
3ds Max、Maya、Blender等
软件功能
创学易懂、高效实 用
建模基本技法-1
01
02
03

第2章 UG NX 10.0 建模基础

第2章 UG NX 10.0 建模基础
3.从点云 “从点云”创建曲面是指通过一组无序排列的点集来创建曲面,所创建 的曲面将尽量逼近于所选的点,效果如图2-128所示。该方法可直接框选 所有点,鼠标框选的起始位置及点云的视图方向不同,生成的曲面亦不 同。
2021/5/27
图2-127
图2-128
40
2.7.3 由曲线构造曲面
1.直纹面 “直纹面”是通过一组假想的直线,将两组截面线串之间的对应点
2021/5/27
10
2.2 实体建模
2.2.1 实体建模概述
常用术语 UG 实体建模中,通常会使用一些专业术语,了解和掌握这些术语是用户进行实体 建模的基础,这些术语通常用来简化表述,另外便于与相似的概念相区别。UG实 体建模中主要涉及以下几个常用的术语。
几何物体、对象:UG环境下所有的几何体均为几何物体、对象,包括点、线、面 和三维图形。
实体:指封闭的边和面的集合。 片体:一般是指一个或多个不封闭的表面。 体:实体和片体总称,一般是指创建的三维模型。 面:边围成的区域。 引导线:用来定义扫描路径的曲线。 目标体:是指需要与其他实体运算的实体。 工具体:是指用来修剪目标体的实体。
2021/5/27
11
2.2.2 基准特征
1.拉伸
2021/5/27
生成实体
封闭曲线
17
生成片体 非封闭曲线
2.回转
回转特征是使截面曲线绕指定轴回转一个非零角度,以此创 建一个特征。可以从一个基本横截面开始,然后生成回转特征或 部分回转特征。
2021/5/27
18
3.扫掠
扫掠是将一个截面图形沿引导线扫描来创造实体特征,其中的 导引线可以是直线、圆弧、样条曲线等。
2.6.1 曲线的绘制
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章:低级建模的基础2.1顺序操作和并行操作顺序操作和并行操作,是新手们很容易混乱的一个重点。

但是为了将低级建模发挥到极限,这一点必须好好的理解。

Verilog HDL语言,虽然不同与其他高级语言的优秀结构性,但是作为硬件描述语言的它,最大的优势是并行操作。

顺序操作有如“步骤”概念,如果上一个行为没有完成,下一个行为就没有执行的意义。

而并行操作最为不同的是,两个行为都是独立执行,互不影响。

那么,我们从一个典型的实验“流水灯实验”,在具体上来理解它们的不同之处。

下图是两种以不同操作方式建立的“流水灯实验”。

1)点亮第一个LED,延迟一段时间。

2)点亮第二个LED,延迟一段时间。

3)点亮第三个LED,延迟一段时间。

4)点亮第四个LED,延迟一段时间。

5)重复第一个步骤。

从上面看来,我们明白“流水灯效果的产生”主要是以“顺序的方式”执行5个步骤。

这可能是人类自然的思维方式吧,人类真的是奇怪的动物,虽然人类的大脑是并行操作的,但是人类的思维方式比较偏向“顺序操作”。

为什么呢?如果引用现实中的实例,如果四个LED失去了“指挥者”,那么它们就罢工了!因为它们失去“执行发号”的第二方,这样的情况就如同上面内容如果没有了“1”,“2”,“3”,“4”,“5”的数目字,那么你又如何看懂“流水灯如何产生呢?”换一句话说,“顺序操作”的代表往往都有一个“指挥者”或者名为“控制器”东西的存在,执行着“工作的次序(步骤)”。

我相信很多学习FPGA的朋友都有学过单片机。

学习单片机的时候,可能是C语言或者汇编语言的关系,所以很多朋友在不知不觉中的情况习惯了“顺序操作”这样的概念。

新手们常常忽略了,FPGA有存在着“顺序操作”和“并行操作”的概念。

如果打从一开始就忽略了它们,往后的日子很难避免遇见瓶颈。

那么换成是“并行操作”的流水灯是如何的呢?结果我们从实验中理解...实验一:永远的流水灯。

这一个实验,我们要以上图作为基础,建立一个并行操作的流水灯模块。

扫描频配置定为100Hz,而每一个功能模块在特定的时间内,将输出拉高。

示意图如下:从上图我们可以看到,功能模块1在时间的第一个1/4拉高输出,功能模块2在时间的第二个1/4拉高输出,其余的两个功能模块也是以此类推。

所以在一个固定的时间周期内(10ms),每一个功能模块所占的时间都是2.5ms。

实验一源码:实验一说明:注:实验文件为路径./Experiment01/之下。

建模过程请参考“实验一配置”。

led0_module.v,led1_module.v,led2_module.v,led3_module.v,的源码都是大同小异。

第12行是10ms计数器的常量声明。

第16~24行是一个计数器,计数器计数范围为10ms。

而在28~36行是决定4个功能模块的不同之处。

led0_module.v功能模块是在时间的第一个1/4拉高输出。

led1_module.v功能模块是在时间的第二个1/4拉高输出。

led2_module.v功能模块是在时间的第三个1/4拉高输出。

led3_module.v功能模块是在时间的第四个1/4拉高输出。

而top.v是顶层模块,用来组织这四个功能模块。

实验一总结:从实验的结果看来利用“并行操作”实现的流水灯,在现实的肉眼中和“顺序操作”没有任何两样。

但是从“理解上”就有很大的差别。

led0_module.v功能模块是在时间的第一个1/4拉高输出。

led1_module.v功能模块是在时间的第二个1/4拉高输出。

led2_module.v功能模块是在时间的第三个1/4拉高输出。

led3_module.v功能模块是在时间的第四个1/4拉高输出。

上面的内容表示了,4个功能模块是独立操作的。

由于输出在时间上不同,在肉眼中才会看到流水灯的效果。

用现实的角度去思考的话,宛如有四个局内人,无不关系,各自只是按照自己的节奏完成自己的工作。

在局外人的眼中,他们如同有默契般,不需要“指挥者”也能完成任务。

在这里说一点局外话。

“并行操作”的建模程度虽说猥琐。

但是在理解上非常适合“FPGA+Verilog HDL”的口味。

平常我们在设计程序的时候,在无意识中使用了“顺序操作”的思维,如果“并行操作”也可以无意识般的使用,那么程序设计,会出现许多“可能性”。

2.2倾向并行操作在2.1章理解了"顺序操作"和“并行操作”的区别之后,这一章我们要讨论并且习惯“并行操作”的思考。

上图是一个组合模块,里边包含了两个功能模块。

一是对闪耀灯控制的功能模块,二是对流水灯控制的功能模块。

假设我要利用“顺序操作”实现如图的功能模块。

实际上是怎样的一个效果呢?我们以“C语言”作为“顺序操作”的代表,来分析一下过程。

.While(1)//大循环{Flash_Funct();//闪耀功能模块Run_Funct();//流水灯功能模块}如果按照上面的代码,程序一开始就会先执行闪耀功能模块(Flash_Funct()),然后再执行流水灯功能模块(Run_Funct())。

但是在现实中,由于控制器的扫描速度很快快,使得人类的肉眼看到错觉“两个模块并行执行着”。

事实上,无论控制器的扫描速度怎么快,也是会存在着“上一步延迟”。

亦即Run_Funct()要执行前,必须等待Flash_Funct()执行完毕,Flash_Funct()要重复执行,必须等待Run_Funct()执行完毕。

除此之外,在“理解上”,人类的思维也非常习惯化的以“顺序”的方式去理解上面的代码。

1.执行Flash_Funct();2.执行Run_Funct();3.重复步骤1.如此一来我们明白了一个道理,“顺序操作”不能满足上图组合模块的功能要求。

module top_module (......);flash_module U1//功能模块1实例化(......);run_module U2//功能模块2实例化(......);endmodule上面内容是Verilog HDL 语言的实例化过程。

在建立实例U1和U2,我们只要确保连接正确而已。

在前面说过"并行操作"的功能模块都是独立执行。

在“设计上”,编辑flash_module 和run_module 的工作都是“分开进行”,而在“理解上”两个实例都是“独立执行”。

换一句话说,上图的组合模块非常适合使用“并行操作”来建模。

不同于“顺序操作”,要实现上图的组合模块,除非依靠“高频扫描”或者“任务调度程序”以外,但是无论怎么“依靠”什么,都不是真正意义上的“并行操作”。

实验二:闪耀灯和流水灯功能模块执行频率资源占用闪耀灯功能模块flash_module.v10hz (100ms)一位LED 流水灯功能模块run_module.v 3.3Hz (300ms)三位LED实验二主要是建立如上图的功能模块。

乘着这个实验的时机,来解释一下,一个长久以来美丽的误会。

扫描频率?闪耀频率?闪耀频率是指一个LED开和关说的周期时间。

实验二中的flash_module所制定的输出如上。

扫描频率是指一次完成流水灯动作所的时间周期。

实验二中的run_module所制定的扫描输出如上。

回忆以前,记得我在入门单片机的时候,实现的流水灯实验,可能是入门的关系吧?我过分在乎肉眼中所看到的效果,而忘记了这些重要的信息。

估计很多人也是吧?但是经过前面2.1章和2.2章的实验创作,要我明白“小小的实验,大大的道理”的道理。

原来流水灯实验,不仅是经典,而且包含了很多的知识。

有时候做人太注重着外面的世界,不小心之间忘记了心里的世界。

实验二源码:实验二完成框图:实验二说明:注意:详细信息请参考“./Experiment02”下的原项目。

建模过程请参考建模视频“video_exp02”。

配置过程请参考“实验二配置”flash_module.v是一个10hz,50%占空比输出的功能模块。

说得简单点就是定时开关...代码比较简单。

run_module.v是一个3.3hz扫描频率的流水灯,采用“控制模块”形式编写。

16~24行是1ms的计数器。

28~36行是基于count1的100ms的计数器。

40~52行是3Bit的移位操作,45行表示每间隔100微妙发生一次移位操作。

48行,判断移位末期。

而51行是移位的代码。

mix_module.v是组合模块,代码很容易明白。

自己看着明白吧。

实验二结论:无论是实验二结果,还是理解上的思维,或者设计上的方向。

“并行操作”完全符合实验二的要求。

所以:思维倾向“并行操作”对,VerilogHDL+FPGA理解或者设计是非常重要。

2.3Verilog HDL不是编程””是“建模建模””不是““编程在初次接触Verilog HDL语言的时候,网上很多朋友都说它和C语言很相似?但是对于这个问题,我真的头疼很久!如果说Verilog HDL与C语言不同,但是是什么地方不同,我却有说不出的感觉。

单片机是一种已经完成的硬件,但是单片机没有“灵魂”,c语言给单片机“灌输灵魂”,单片机才能舞动起来。

c语言就是扮演这样的一个角色。

不同的是,Verilog HDL语言是一种富有“形状”的语言,它可以描述单片机的任何部分。

如UART资源,定时器资源等。

“建模”这一词是指,使用“硬件描述语言”去建立某个资源模块。

如果说c语言可以使用“编程”一词,那么Verilog HDL语言使用“建模”这一词更适合不过了。

从理解上,C语言,我们可以使用“代码”的形式去理解“编程”,如:函数的概念,参数的概念,局部全局的概念等。

但是“代码的形式”却完全不适合“Verilog HDL语言”。

既然“代码的形式”不适合“Verilog HDL语言”,那么“Verilog HDL语言”又该用“什么”去看待?前面我已经说过,“Verilog HDL语言”是一种富有“形状”的语言。

Verilog HDL语言的“建模”更应该有形象和更有具体感。

如果以笔者的角度去了解“建模”......笔者每次在设计之前,都喜欢将一个一个模块画在纸上,然后再使用连线的方式去完成一个设计。

从这一点,我们可以知道笔者是从“图形”去完成设计的准备。

换一句话说,笔者是以“形状”的形式作为设计的理解基础。

以“代码”的形式去理解Verilog HDL语言的设计,到底有多大问题?从网上的众多求救贴中,就可以理解这一点。

笔者不是完全否定这样的理解形式,毕竟“代码”是语言的基础,而且建模的完整性,都需要“代码级”的微调。

笔者只想告诉一个事实而已。

如果着手以“形状”的去理解Verilog HDL语言,以“建模”的去完成Verilog HDL语言的设计。

在感觉上Verilog HDL+FPGA是“可所触及”,是一种“实实在在”的感觉,不相等于“编程”时的那种“抽象感”。

相关文档
最新文档