- 博客(187)
- 收藏
- 关注
原创 7,verilog仿真语法模版_函数与任务
1)读内存文件(read memory file)2)读写文件(read/write to a file)小飞)的博文,咱们一起学习、一起进步吧。
2024-09-07 10:31:47 354
原创 6,verilog仿真语法模版_常量与变量声明
参数是 Verilog 在代码中定义常量的一种方法。参数对于定义总线宽度、内存深度、状态机、时钟周期以及整个设计和测试平台中使用的其他有用常量非常有用。参数设计可使代码更具参数化,从而提高代码的可维护性和简洁性。
2024-09-07 10:18:38 167
原创 4,verilog仿真语法模版_过程块语句
1.Always条件过程块(conditional repeated execution) 2.initial过程块(execute once) 3.always持续过程块(repeated execution)点赞加关注博主(ID:FPGA小飞)的博文,咱们一起学习、一起进步吧~
2024-09-07 10:06:54 150
原创 3,verilog仿真语法模版_循环
4.repeat循环语法。2.递增for循环语法。5.while循环语法。6.disable循环语法。1.递减for循环语法。
2024-09-07 10:05:07 132
原创 2,verilog仿真语法模版_延时
1.基本延迟语法(finite delay)2.电平触发延迟语法(wait for any signal transition)3.下降沿触发延迟语法(wait for negative signal transition)4.上升沿触发延迟语法(wait for positive signal transition)5.条件信号延迟语法(wait for signal condition)点赞加关注博主(ID:FPGA小飞)的博文,咱们一起学习、一起进步吧~
2024-09-07 09:50:15 141
原创 116,Verilog-2005标准篇:verilog实用函数与任务总结
函数(function)调用格式:任务(task)调用格式:函数(function)定义格式: 任务(task)定义格式:函数与任务例子:点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!
2024-08-31 00:08:38 736
原创 116,Verilog-2005标准篇:verilog实用操作符总结
算术运算符:单目运算符:逻辑运算符:赋值/拼接运算符:缩减运算符:点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!
2024-08-31 00:07:04 257
原创 115,Verilog-2005标准篇:verilog实用编译指令总结
Define类编译指令介绍:例子:Include编译指令介绍例子:timescale编译指令介绍:例子: 点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!
2024-08-31 00:05:05 582
原创 114,Verilog-2005标准篇:verilog实用注释语法总结
Verilog代码第一种注释方式:Verilog代码第二种注释方式:Verilog文件信息注释模版:点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!
2024-08-31 00:02:40 168
原创 10,Altium硬件设计小技巧篇:PCB生成gerber文件
(2)“Layers”栏设置如下图5,6所示,需要注意的是,“Plot Layers”要选择Used On,“Mirror Layers”要选择 All Off,“Include Unconnected mid-layer pads”也要勾选。在电路板(PCB)设计完成后,设计师们都需要将相关的设计文件交给厂家生产,可是有时候为了保密或其它原因,设计师们不愿意将完整的PCB文件发给厂家,这时设计师们就需要将PCB文件转化为gerber文件,再提供给厂家生产。二者各有利弊吧,这里就不展开说了。
2024-08-24 00:18:02 946
原创 9,Altium硬件设计小技巧篇:PCB多通道设计
通过原理图中特殊的“repeat”命令,就可以自动生成用户需要的原理图份数,无论多少份都可以。将这些原理图导入PCB后,同样只需对1份原理图对应的器件布局布线,剩下的其它原理图器件则通过PCB设计中的“room”相关命令来复制已有的布局布线即可。原理图文件“多通道.SchDoc”里面是1个放大电路,“top.SchDoc”里面则是多通道顶层设计,“多通道.PcbDoc”则是相应的PCB文件。接下来,如下图所示为原理图导出的PCB文件,我们可以看到包含同样的4份放大电路,每份放大电路都是1个room。
2024-08-24 00:16:08 497
原创 8,Altium硬件设计小技巧篇:PCB等长设计
2)打开规则编辑器,在“High Speed-Length”里新建一个规则,取名为“SINGLE”,并且选取信号的范围为“Net Class-SINGLE”,修改最小和最大长度,最小长度比3065.954mil略小,最大长度比3065.954mil略大即可,只要这10路信号最终需要的长度偏差在允许的范围之类即可。接下里我们再设计差分等长信号原理图,同样是两个10pin的连接器信号互连,共有5对差分线需要做等长处理,需要注意的是差分信号必须在正负信号名称末尾分别加上_P和_N。1)执行Blanket。
2024-08-24 00:14:54 810
原创 7,Altium硬件设计小技巧篇:PCB的3D设计
如果我们已经通过网站下载的方式获得元器件的3D模型文件(.step文件),接下来我们需要把3D模型文件添加到PCB封装的机械层。博主习惯在机械层1放置整个PCB的外形板框,机械层13放置元器件的3D模型(.step文件),机械层15放置元器件的外形尺寸。今天博主小飞要和大家分享的是用altium designer设计PCB时,如何生成3D视图,让咱们的PCB在展示的时候更加亮眼。该网站里面基本上包含了我们日常所需的所有器件,还提供大多数元器件的原理图库、PCB库和部分元器件的3D封装。
2024-08-24 00:12:05 529
原创 6,Altium硬件设计小技巧篇:PCB智能扇孔
勾选2表示对该BGA芯片的外围两圈焊盘也进行扇孔,不勾选2表示不对外围两圈焊盘扇孔,只对其余内部焊盘扇孔,这是由于最外围两圈的焊盘就算不打孔,也是有布线空间的,可以在顶层直接引出信号。对于焊盘密度比较高的BGA扇孔(比如FPGA、DDR、高速ADC等),很多初学者在设计时,为了走线方便,随意挪动BGA里的过孔位置,有时图省事甚至直接将过孔打到焊盘上,这类做法会造成一系列的PCB生产和焊接问题,如下图3所示。注意:有时候扇孔会出错,这是由于用户的PCB规则设置不对,重新设置合适的规则就可以了~
2024-08-24 00:09:10 856
原创 5,Altium硬件设计小技巧篇:PCB焊盘走线bug修复
2 点击"Advanced",进入系统高级设置页面,在Legacy.PCBInternalGloss选项里,一定要勾上前面的选项!系统默认该选项不勾选的,因此会出现焊盘引出走线畸形。博主小飞曾经用Altium Designer 20及以上版本设计PCB时,遇到了一个很糟心的麻烦:默认的AD20系统设置会导致从焊盘引出的走线畸形,严重影响了心情,进而耽误工程进度。图2:AD20默认的差分线焊盘引出走线。图4:AD20默认的单端线焊盘引出走线。图1:正常差分线的焊盘引出走线。图3:正常单端线的焊盘引出走线。
2024-08-24 00:07:46 308
原创 4,Altium硬件设计小技巧篇:PCB各层含义理解
只有PCB底层表贴的芯片的焊盘才会在该层显示,其它任何东西都不显示在该层(例如过孔,通孔焊盘)。Top Solder:顶层阻焊层,通俗的说该层我们所看到的东西在PCB生产出来以后全是裸露的铜皮(例如表贴焊盘,过孔,通孔焊盘以及需要露铜的地方),其它部分全部是盖油了的。第二种方式:8层板最佳叠层方式,该分层由于多层地参考平面的使用而具有非常好的地磁吸收能力,但电源层只有1层,不利于复杂的PCB电源布局。实际上对于普通用户来说,设计中常用的也就是信号层,电源层,地层,丝印层,机械层。
2024-08-24 00:06:54 695
原创 3,Altium硬件设计小技巧篇:生成PCB封装
,网页跳转出现该器件的原理图符号、PCB封装以及3D模型,我们直接点击红色按键,下载即可,如下图所示:(注意:封装后缀L、N、M一般表示焊盘伸出的大小的几何形状变化。13点击完“Start Import”后,altium designer会输出原理图符号和PCB封装,并在该软件左侧工程栏里出现,如下图所示:(原理图符号和PCB封装默认保存在桌面的解压缩文件里面)”子选项后,就会出现该器件的封装信息,如下图所示:该器件封装类型为TQFP(PFC),引脚数80.小飞)的博文,一起学习进步吧!
2024-08-24 00:06:12 436
原创 2,Altium硬件设计小技巧篇:PCB的BOM表显示
最近,博主参考了网友提供的一种excel表的设置方法,设置后打印出来的纸质元器件清单相邻两行或者两列之间灰度可以不一样,这样在进行元器件备料时很容易区分,不容易出错。在PCB焊接前对元器件进行清点时,经常需要拿着纸质的excel元器件清单,逐行的去清点元器件数量和型号。第五步:点击确认并退出后,excel表舅显示出隔行的红色了,如下图8所示:为了黑白打印显示方便,我们可以换成一种稍微灰的颜色即可。第四步:点击格式后会弹出一个窗口,在窗口中选择最后一栏“填充”,再选择自己需要的颜色,本文以红色为例。
2024-08-24 00:00:36 333
原创 1,Altium硬件设计小技巧篇:PCB插入图片
博主小飞将插件放在了C:\altiumLibrary文件夹中,所以电脑路径为C:\altiumLibrary\Scripts\Scripts\Delphiscript Scripts\PCB\PCB Logo Creator。第一步,需要准备三样东西,1是Altium Designer的软件,各个版本均可。本篇博主小飞将详细介绍如何在Altium designer中的PCB中插入图片logo的方法。最后在自动生成的PCB中就有了图片logo了,如图10所示。FPGA小飞)的博文,一起学习进步吧!
2024-08-23 23:58:55 223
原创 113,完结!Verilog-2005标准篇:数学函数(Math functions)
将返回函数参数基2对数的上限,参数可以是整数或任意大小的向量值。参数应视为无符号值,参数值为 0 时,结果为 0。在实际应用中,该系统函数特别适合计算寻址给定大小的内存所需的最小地址宽度,或计算表示给定状态数所需的最小向量宽度。数学函数有整数和实数两种,数学系统函数可用于常量表达式!表1:Verilog至C语言实数函数映射列表。
2024-08-22 00:34:26 219
原创 112,Verilog-2005标准篇:Command line input(命令行输入)
该字符串在系统函数的第一个参数中指定为一个字符串或一个可解释为字符串的非实数变量,该字符串不应包括命令行参数的前导加号。如果提供的某个plusargs的前缀与提供的字符串中的所有字符匹配,函数将返回一个非零整数,字符串的剩余部分将转换为user_string中指定的类型,并将结果值存储到提供的变量中。匹配的plusarg的剩余字符串(剩余字符串是plusarg字符串中与用户plusarg_string匹配部分之后的部分)应从字符串转换为格式字符串所指示的格式,并存储在所提供的变量中。
2024-08-22 00:32:02 328
原创 111,Verilog-2005标准篇:概率分布函数(Probabilistic distribution functions)
种子参数应是一个整数变量,由用户初始化,仅由系统函数更新,这将确保实现所需的概率分布。对于exponential函数、poisson函数、chi-square函数、t函数和 erlang 函数,参数mean、degree_of_freedom 和 k_stage 应大于0。函数一起使用的标准差(standard_deviation)参数是一个整数输入,有助于确定密度函数的形状。函数一起使用的自由度(degree_of_freedom)参数是一个整数输入,有助于确定密度函数的形状。其中最常见的就是最简单的。
2024-08-22 00:31:26 340
原创 110,Verilog-2005标准篇:转换函数(Conversion functions)
转换系统函数可用于常量表达式,因此其不仅可用在仿真中,实际板级verilog代码也能使用,但其函数输入只能是常量。这些函数接受或生成的实数应符合IEEE 754实数表示法,转换结果应四舍五入到最接近的有效表示形式。:将实数转换为实数的 64 位表示(向量)。:通过截断实数值,将实数值转换为整数。相反,将位模式转换为实数。
2024-08-22 00:30:49 192
原创 109,Verilog-2005标准篇:仿真时间系统函数(Simulation time system functions)
在本例中,仿真时间为 16 ns 时,set值为 0,仿真时间为 32 ns 时,set值为 1。返回一个无符号整数,即 32 位时间,并按调用该函数的模块的时间刻度单位进行缩放。在本例中,由于10 ns是模块的时间单位,因此set中的事件时间是10 ns的倍数。b) 1.6 四舍五入为 2,3.2 四舍五入为 3,因为 $time 系统函数返回的是整数。-系统函数 $time 返回一个 64 位时间的整数,该时间按调用该函数的模块的时间刻度单位缩放。一样,它也是按调用该函数的模块的时间单位缩放的。
2024-08-22 00:30:09 298
原创 108,Verilog-2005标准篇:随机分析任务(Stochastic analysis tasks)
(q_id, q_stat_code, q_stat_value, status),该系统任务提供队列q_id活动的统计信息。(q_id, job_id, inform_id, status),该系统任务在队列中加入一个条目。(q_id, job_id, inform_id, status),该系统任务从队列中接收一个条目。(q_id, q_type, max_length, status),该系统任务创建新队列。(q_id, status),该系统函数会检查队列中是否还有空间容纳另一个条目。
2024-08-22 00:29:34 163
原创 106,Verilog-2005标准篇:仿真控制系统任务(Simulation control system tasks)
系统任务只是让仿真器退出并将控制权传回主机操作系统。如果为该任务提供了一个表达式,那么其值(0、1 或 2)将决定在发出提示之前打印的诊断信息(见下表1)。如果没有提供参数,则默认值为 1。系统任务会使仿真暂停。该任务使用一个可选的表达式参数(0、1 或 2)来决定打印何种类型的诊断信息。诊断信息的输出量随传递给 $stop 的可选参数值的增加而增加。
2024-08-22 00:27:53 169
原创 105,Verilog-2005标准篇:时标任务(Timescale tasks)
它指定%t格式规范如何报告 $write、$display、$strobe、$monitor、$fwrite、$fdisplay、$fstrobe 和 $fmonitor 系统任务组的时间信息,因此它将为源代码描述中后续所有模块中指定的所有%t格式设置时间单位、精度数、后缀字符串和最小字段宽度。-它指定了交互输入延迟的时间单位,因此其为所有稍后交互输入的延迟设置时间单位。
2024-08-21 21:24:30 219
原创 104,Verilog-2005标准篇:文件IO系统任务和函数简介
这些函数和c语言重点文件IO函数类似,咱们在仿真需要时,查阅函数具体用法即可,不必死记硬背。- 从文件中读取数值并加载到变量或内存中的任务和函数。- 打开和关闭文件的函数和任务。- 将值输出到变量的任务。- 向文件输出值的任务。
2024-08-21 21:23:52 196
原创 103,Verilog-2005标准篇:显示系统任务(Display system tasks)简介
该时间为当前仿真时间的结束时间,即该仿真时间内的所有仿真事件都已发生。实际应用在时,我们如果想在仿真时显示一些信息的话,就调用这两种任务即可,具体语法这里不再介绍,到时候用的时候查阅手册即可。该操作应在仿真时间向前推进之前和该时间的所有其他事件发生之后进行,这样写入的数据才能确保是该仿真时间的正确数据。系统函数除外),整个参数列表都会在时间步结束时显示出来,就像 $display 任务所报告的那样。可监控和显示作为任务task参数指定的变量或表达式的值。任务控制一个监控标志,用于启用或禁用监控。
2024-08-21 21:23:17 252
原创 102,Verilog-2005标准篇:Verilog系统任务与函数简介
概率分布函数(Probabilistic distribution functions)-随机分析任务(Stochastic analysis tasks)-仿真时间函数(Simulation time functions)-PLA建模任务(PLA modeling tasks)-转换函数(Conversion functions)-文件IO任务(File I/O tasks)-时标任务(Timescale tasks)-数学函数(Math functions)-显示任务(Display tasks)
2024-08-21 21:22:37 113
原创 101,Verilog-2005标准篇:`unconnected_drive 和`nounconnected_drive编译指令简介
源代码中最新出现的指令控制着未连接端口的情况,这些指令应在模块声明之外成对指定。之间出现的模块的所有未连接输入端口都会被上拉或下拉,而不是正常的默认值。时,所有未连接的输入端口都自动上拉。时,未连接的端口将被下拉。
2024-08-21 21:22:06 327
原创 100,Verilog-2005标准篇:`line指令简介
值 1 表示下一行是包含该文件后的第一行。当编译器处理文件的剩余部分和新文件时,每读取一行,行号就会递增,文件名也会更新为当前正在处理的新文件。开始读取包含文件时,应存储当前行和文件名,以便在包含文件结束时恢复,更新后的行号和文件名信息可供 PLI 访问。但在许多情况下,Verilog 源代码会被其他工具预处理,原始源文件的行和文件信息可能会丢失,因为预处理器可能会在源代码文件中添加额外的行,将多个源代码行合并为一行,串联多个源文件等。指定新的行号和文件名后,编译器就能正确引用原始源代码的位置。
2024-08-21 21:21:33 292
原创 99,Verilog-2005标准篇:`begin_keywords和`end_keywords编译指令介绍
可用于根据IEEE std 1364的特定版本,指定在源代码块中保留哪些标识符作为关键字,这一对指令只指定作为关键字保留的verilog标识符集,并不影响 Verilog 语言的语义、标记和其他方面。下一个示例与上一个示例的代码相同,只是明确指定应使用 IEEE Std 1364-2005 Verilog 关键字。是1364-2005标准中的保留关键字,指定使用 “1364-1995 ”Verilog 关键字列表也适用于本示例。如果没有该指令,该模块的保留关键字集将是编译器默认的保留关键字集。
2024-08-21 21:20:59 239
原创 98,Verilog-2005标准篇:`timescale编译指令用法
换句话说,在仿真时间 16 ns(1.6 × 10 ns)时,值 0 被分配给变量set,而在仿真时间 32 ns 时,值1被分配给变量set。time_precision 参数的精度至少应与 time_unit 参数的精度相同,不能指定比 time_unit 更长的时间单位。在这里,由于 time_unit 参数为 “1 ns”,因此指令后面模块中的所有时间值都是 1 ns 的倍数。由于 time_unit 参数为 “10 us”,因此该指令后面的模块中的时间值都是 10 us 的倍数。
2024-08-21 21:20:09 780
原创 97,Verilog-2005标准篇:`resetall编译指令用法
编译器指令时,所有编译器指令都将设置为默认值,这有助于确保只有编译特定源文件时需要的指令才会被激活。放在每个源文本文件的开头,然后紧接着是文件中需要的指令。注意,在module模块或 UDP 声明中指定。
2024-08-21 21:19:26 159
原创 96,Verilog-2005标准篇:`include编译指令用法
可以在 Verilog HDL 描述的任何地方指定。文件名是要已包含在源文件中的文件名。)编译器指令用于在编译过程中将源文件的全部内容插入另一个文件。编译的结果就好像被包含的源文件内容代替了。编译器指令可用于包含全局或常用定义和任务,而无需将重复代码封装在verilog模块内。编译器指令”,但包含文件的嵌套级数应是有限的,但至少应为 15 层。- 改进 Verilog HDL 源代码描述的组织结构。编译器指令被包含在源代码中的文件也可能包含其他。编译器指令同一行的只能是空白或注释。
2024-08-21 21:18:38 151
原创 95,Verilog-2005标准篇:`ifdef, `else, `elsif, `endif, `ifndef条件编译指令介绍
指令(而不是 `else),编译器会检查 text_macro_name 的定义。编译器指令检查 text_macro_name 的定义。条件编译指令用于在编译过程中选择性地包含 Verilog HDL代码,这些指令可以出现在源代码描述的任何地方。编译器指令,则按照 Verilog HDL 源代码描述中的编写顺序,像第一个。编译器指令,则按照 Verilog HDL 源代码描述中的编写顺序,像第一个。编译器指令,则忽略这些编译器指令和相应的行组。编译器指令,则忽略这些编译器指令和相应的行组。
2024-08-21 21:17:52 972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人