- 博客(13)
- 收藏
- 关注
原创 c语言中的static静态变量
静态变量有一个特性,就是即使它们离开了它们的作用域,也会保留它们的值。因此,静态变量在其先前的作用域中保留其先前的值,在新的作用域中不会再次初始化。
2022-10-21 14:44:48
1421
1
转载 复杂RTL(verilog)工程代码阅读技巧
在阅读verilog代码也是有一定技巧的,有效的方式能够提高阅读速度。快速阅读分为以下几步1、弄清楚模块作用:能够一句话描述首先要知道模块是做什么的,有什么作用,能够用一句话描述就够了。如:CRM(clock reset Management)就是提供时钟信号和复位信号的模块,为芯片内部各个模块提供时钟和复位信号。2、弄清楚重要输入信号和输出信号要确定最重要的输入信号和输出信号是什么,不需要知道所有的信号,只要知道能体现体现出模块功能的信号是什么就可以了,在此称之为关键信号。3、了解重要信号
2021-03-02 09:55:31
1882
原创 CRC原理简析——史上最清新脱俗简单易懂的CRC解析
CRC原理简析1. CRC校验原理CRC校验原理根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以
2020-11-07 13:17:58
6369
1
原创 函数的参数传递
函数的参数传递1.赋值传递方式1)调用函数将实参传递给被调用函数,被调用函数将创建同类型的形参并用实参初始化2)形参是新开辟的存储空间,在函数中改变形参的值不会影响到实参2.指针传递方式程序举例:编写一个函数,统计字符串中小写字母的个数,并把字符串中的小写字母转化为大写字母#include <stdio.h> int str_fun(char * p);int main(int argc, char *argv[]){ char s[] = "welcome2020B
2020-11-05 14:38:35
108
原创 函数
函数函数是一个完成特定功能的代码模块,其程序代码相对独立,通常有返回值,也可以是空值。一般形式:<数据类型> <函数名称> (<形式参数说明>){语句序列;return[(<表达式>)];}函数数据类型与表达式数据类型保持一致;<形式参数说明>可以缺省说明的变量名称,但类型不能缺省例,double Power(double x,int n); double Power(double,int);程序举例定义求x^n值的函数(
2020-11-05 10:19:29
292
原创 指针与二维数组
指针与二维数组int a[3][2] = {{1,6}, {9, 12}, {61 ,12}};int * p, i, n;n =sizeof(a) / sizeof(int);p = &a[0][0];printf("%p %p\n",p , p+1);printf("%p %p\n", a, a+1);for(i = 0; i < n; i++) printf("%d ",*(p+i));二维数组名代表数组的起始地址,数组名加1,是移动一行元素。因此,二维数组名
2020-11-04 16:10:36
240
原创 高质量VerilogHDL描述方法
一、关于Verilog HDL的认知HDL:Haedware Description·HDL语言仅是对已知电路的文本表现形式描述,描述前必须对所需实现的硬件电路“胸有成竹”。·描述可综合的硬件电路。·相比C语言,最显著的区别在于HDL语言具备以下硬件设计的基本概念:互连(connectivity):-wire型变量描述各个模块之间的端口与网线连接关系;并发(concurrency):-可以有效地描述并行的硬件系统;时间(time):-定义了绝对和相对的时间度量,可综合操作符具有物理延迟。二、
2020-08-29 20:39:07
292
原创 Verilog+HDL数字设计与综合笔记
Verilog+HDL数字设计与综合笔记1.从模块外部看,输出必须连接到线网类型的变量,而不能连接到reg类型的变量。
2020-07-30 16:06:37
244
原创 脉动进位计数器Verilog表述
1.D触发器 带清零端的负跳变沿D触发器Verilog表述//边沿触发的D触发器module edge_dff(q, qbar, d, clk, clear);output q, qbar;input d, clk, clear;//内部变量wire s, sbar, r, rbar, cbar;//生成clear的反向信号assign cbar = ~clear;//输入锁存;锁存器是电平敏感的、边沿触发的寄存
2020-07-29 10:29:38
1066
原创 简单的Verilog HDL例子(一)
例1 数据选择器module MUX(out,in0,in1,sel); parameter N=8; output [N:1] out; input [N:1] in0,in1; input sel; assign out=sel?in1:in0;endmodule)例2 四位二进制加法计数器(带同步清零)module counter(q,count,reset,cin,clk); parameter N=4; output [N:1] q; output count;
2020-05-17 18:57:10
2414
原创 C语言之字符串函数
#include <string.h>1.求字符串长度的函数strlen格式:strlen(字符数组1)功能:求字符串长度(‘\0为结束标志’)返值:返回int型整数strlen计算的是有效长度不含\0,sizeof计算的是数组所占空间数(包括\0)。注:\xhh表示十六进制数代表的字符,\ddd表示八进制数代表字符。2.字符串拷贝函数strcpy格式:strcpy(...
2020-05-06 16:55:00
168
原创 C语言之二维数组
二维数组1.二维数组的定义-定义方式:(声明时列数不能省略,行数可以省略)数据类型 数组名[常量表达式 ][常量表达式];行 列-元素个数=行数*列数-例int a[3][4];2.数组元素的存放顺序-原因:内存是一维的-二维数组:按行序优先-例 int a[3][2];3.理解-int a[i][j];a[i]是行名也可理解为一...
2020-04-23 18:30:47
841
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人