- 博客(22)
- 收藏
- 关注
原创 关于Verilog HDL的移位运算
在Verilog HDL中有两种移位运算符。<<:(左移位运算符)>>:(右移位运算符)其使用方法如下:a >> n;a << n;a代表要进行移位的操作数,n代表要移几位。这两种移位运算都用0来填补移出的空位。下面举例说明:module shift; reg [3:0] start, result; init...
2018-11-22 17:30:22
5208
原创 《C和指针》随记
/* 前阵子花两周时间又把《C和指针》过了一遍,陆陆续续做了些笔记,现总结如下。。。*/第一章 快速上手 1. EOF是一个int型数值。 2. 去除某段代码,将其注释掉不是一个好选择,更高效、安全的办法是使用 #if #endf#if 0 statements#endif 3. 在C语言中,数组参数是以引用形式进行传递的,也就是传...
2018-11-20 15:36:01
216
原创 char a[] = "abc" 与 char *p = "def"区别浅析
char a[] = "abc"; 中a是数组名,编译时为其分配4个char单元,前3个单元用“abc"中的字符对应初始化,最后一个存放'\0'。 char *p = "def"; 在编译时先生成"def"字符串常量,存放在常量区,并将首地址(c的地址)赋给char *型指针变量p。 从以上可知,二者的区别在于:数组名a和指针变量p虽然本质上都是地址,但是数组名a它的地址是不变的,即它是一...
2018-11-09 10:19:57
1548
原创 《C陷阱与缺陷》读书笔记
这本书很薄,仅有150来页,正文大概120页,最后附上了课后答案及建议。上周花了三天断断续续看完,先做一个总结。第一章:词法陷阱词法分析中的贪心算法:每个符号应该包括尽可能多的字符。因此,注释的嵌套是不允许的。 符号的中间不能嵌有空白(空格符、制表符和换行符)。例如,==是单个符号,= =则是两个符号。例如, a---b ;a -- - b ;a - -- b ; 前两项含义...
2018-11-06 16:11:25
412
原创 dsp指令中的 EALLOW,EDIS
在看DSP初始化程序的时候,经常会看到void InitAdc(void){ EALLOW; SysCtrlRegs.HISPCP.all = ADC_MODCLK; InitAdc(); EDIS;} EALLOW与EDIS究竟有什么含义呢? 在.h文件中会发现,这两条其实是汇编指令 #define EALL...
2018-10-26 10:17:10
5071
2
原创 Quatus II13.0链接Altera-Modelsim进行功能仿真
step1:首先要设置altera-modelsim的执行路径,即指定altera-modelsim的安装路径,打开Quartusii (1)Tools ->Option (2)点击EDA Tool Options, 出现左边的界面,点击红框2 里的 “…”,选择altra-modelsim的安装路径,设置好如下图。点击 OK 退出。 step2:新建工程,本文做一个简...
2018-10-25 11:32:58
3695
原创 Quatus II 13.0版本新建Verilog工程
Part 1:新建Verilog工程step1:到file里点击new project wizardstep2:点击next到如下界面,在第一行里选择填入工程的路径,第二行填入工程名称,第三行是工程顶层文件的名称(软件默认和工程名称相同) step3:点击next,显示如下界面,这里主要是添加一些外部的设计 文件到工程里,如果没有,直接选择下一步。当然,建好工程之后,仍然可以添...
2018-10-25 11:12:35
1520
转载 Verilog HDL 初级入门知识简单讲解(wire 和 reg 类型的区别, always 和 assign 的区别,“阻塞”赋值 和 “非阻塞赋值”的区别 )
本文转载自原作者:姚纪元,原文地址已失效 很多刚学Verilog HDL (硬件描述语言)的朋友肯定会对阻塞赋值和非阻塞赋值比较疑惑,那我们就一起来抛开这层迷雾吧。首先我们要理解两种变量类型 Net Type(连线型)和 Register Type (寄存器型)。(有些参考书上有分为3种类型,这个无关紧要)。 Net Type(连线型),从名字上理解就是“导线”呗,...
2018-10-19 09:28:30
3946
原创 C语言中的volatile用法
Part 1:前缀理论知识介绍1 > 编译器的优化 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种...
2018-10-15 10:52:39
738
原创 记录:基于CCS6+Quartus II开发平台所遇到的一些问题(28335芯片)
1.在CCS中首先配置好targetConfigs文件 2.编译过程中默认选择release,若想选择debug,需要在include>common.h 中,取消注释#define DEBUG_MODE ,如图: 3. 在编译之前,要确保默认.ccxml文件路径正确,具体做法是:Run>Debug Configurations,选中Code Comp...
2018-09-21 14:00:45
1162
转载 关于TI的28335芯片概述
转载自:https://www.cnblogs.com/layup/archive/2013/04/07/3006253.htmlTMS320F28335属于TMS320C2000™数字信号控制器(DSC)系列。TI中C28x系列就是DSC,之前的产品都是定点型的DSP,而TMS320F28335所属的F2833x系列是带浮点运算单元的,用C28x+FPU表示。28335的FPU...
2018-09-21 11:44:45
9364
原创 C语言中的指针
1. int *p 上式说明p是指向int类型对象的指针变量。 2. 为了找到变量的地址。可以使用取地址运算符&。如果x是变量,那么&x就是x在内存中的地址。 为了获取指针所指向对象的访问,可以使用间接寻址运算符*。如果p是指针,那么*p表示p当前指向的对象。 3. 只要指针p指向变量i,那么*p就是i的...
2018-09-21 11:39:42
147
原创 对同一个数组进行多次初始化
int a[]={4,9,1,8,[0]=5,7};Q:上述声明是否合法?若合法,数组长度是多少?A:这个声明是合法的。下面是它的工作原理: 编译器在处理初始化列表时,会记录下一个待初始化的数组元素位置。正常情况下,下一个元素是刚被初始化的元素后面的那个。但是,当列表中出现初始化式时,下一个元素会被强制为指示符对应的元素,即使该元素已经被初始化过。下面逐步分析编译器处理数组a
2017-11-08 17:09:38
1364
原创 关于srand((unsigned)time(NULL))
函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。函数rand()会返回一个处于0和你所指定的数值(缺省为1)之间的分数。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用srand()会导致相同的随机数序列被生成。 srand((unsigned)time(NULL
2017-11-08 16:46:13
855
原创 求最小公倍数和最大公约数
1.最小公倍数=两整数的乘积÷最大公约数2.求最大公约数算法(辗转相除法) 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行①/*辗转相除法求最大公约数*/#include int main(){ int m,n,temp
2017-11-03 16:47:31
340
原创 C99中的for语句
在C99中,for语句的第一个表达式可以替换为一个声明,这一特性使得程序员可以声明一个用于循环的变量: for(int i=0;i变量i不需要在该语句之前声明。事实上,如果变量i在之前已经进行了声明,这个语句将创建一个新的i且该值仅用于循环内。 for语句声明的变量不可以再循环外部访问。
2017-11-03 11:44:57
1227
原创 逻辑或“||”
1.在C语言中,逻辑或的值只能为0或者1 例如:0||-1==1(不是-1)2.而在JavaScript中,当一个布尔值0与一个布尔值1逻辑或时,值为布尔值1所代表的值 例如:0||-1==-1
2017-11-02 18:23:50
558
原创 在VS2017创建C语言项目
Step 1.文件->新建->项目 Step 2. 选择控制台应用程序,项目名称和存储路径可由自己定义。然后点击确定->下一步 Step 3. 在弹出的对话框中,依次选择控制台应用程序和空项目,然后点击完成。 Step 4. 在生成的project中,右键点击源文件->添加->新建项,选择C++文件,重新命名文件名,并将文件后缀...
2017-10-31 14:45:20
32181
原创 在W3C标准定义的阻止事件向父容器传递的方法
Q:在W3C标准定义的阻止事件向父容器传递的方法A:e.stopImmediatePropagation()DOM中的事件对象:(符合W3C标准)preventDefault() 取消事件默认行为stopImmediatePropagation() 取消事件冒泡同时阻止当前节点上的事件处理程序被调用。stopPropagation
2017-08-23 23:01:49
1560
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人