FPGA编程技巧与经验笔记

1、位拼接运算必须指明位数,若不指明则隐含着为32位的二进制数【即整数】。 例:{1,0} = 64‘h00000001_00000000; 不等于2’b10;

2、%取模运算或者取余运算可以用“与”操作实现快速求余运算。

例如a%4,则可以化简为a&3.详解:5%4 = 4‘b0101%4‘b0100      //因为余数比4小,所以余数的bit2位及以上位都为0,只有bit0、bit1有数据,且与原来的数相 同

= 4‘b0101&4’b0011  = 4‘b0001 = 1;

故只要取模的数都是2^n的数都可以这样做。 好处是:位操作只需要一个指令周期即可完成,而大部分的C编译器的“%”运算均是调用子程序来完成的,代码长、执行速度慢。

3、%操作同普通操作不同,更为严格。要求:%两侧都要为整形数据,并且结果值的符号与采用取余运算里的第一个数的符号。

如果被取余的操作数为负数,取余数为正数,即b%a,b<0,a>0,a、b都为integer型,

则结果会怎样?用modelsim仿真结果如下:

可以看出商和余数的符号与被取余的数的符号相同。

4、幂的运算符号为**,而^的运算符号指 按位异或  或者 归约异或。

^按位异或:二元异或,有两个操作数位于两侧。如果某位为x或者z,则该位结果为x,否则相同为0,不同为1.

4‘b0110^4‘b1000 = 4‘b1110;

^归约异或:一元操作数,如果某个位的值为x或者Z,则结果为X,如果操作数中有偶数个1,则结果为0,否则为1;

^4’b0011 = 0;

^4‘b0001 = 1;

时间: 2024-07-29 10:41:52

FPGA编程技巧与经验笔记的相关文章

FPGA编程技巧系列之输入输出偏移约束

1.   偏移约束的作用 偏移约束(Offset Constraint)用来定义一个外部时钟引脚(Pad)和数据输入输出引脚之间的时序关系,这种时序关系也被称为器件上的Pad-to-Setup或Clock-to-Out路径.这些约束对与外部元器件相连的接口十分重要,在这里,需要解释两个术语: Pad-to-Setup:也被称为OFFSET IN BEFORE约束,是用来保证外部输入时钟和外部输入数据的时序满足FPGA内部触发器的建立时间要求的.如下图TIN_BEFORE约束使得FPGA在进行DA

Xilinx FPGA编程技巧之常用时序约束详解

1.   基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取.最普遍的三种路径为: 输入路径(Input Path),使用输入约束 寄存器到寄存器路径(Register-to-Register Path),使用周期约束 输出路径(Output Path),使用输出约束 具体的异常路径(Path specific exceptions),使用虚假路径.多周期路径约束 1.1.  输入约束Input Constraint OFFSET IN约束限定了输入数据和输入时钟边沿的

单片机应用编程技巧问答

1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言.其主要优点是占用资源少.程序执行效率高.但是不同的CPU,其汇编语言可能有所差异,所以不易移植. C语言是一种结构化的高级语言.其优点是可读性好,移植容易,是普遍使用的一种计算机语言.缺点是占用资源较多,执行效率没有汇编高. 对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM.RAM.STACK等资源都有限,如果使用C语言编写,一条C语言指令编译

【游戏设计模式】之四 《游戏编程模式》读书笔记:全书内容梗概总结

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/53240330 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文的Github版本:QianMo/Reading-Notes/<游戏编程模式>读书笔记 这是一篇超过万字读书笔记,总结了<游戏编程模式>一书中所有章节与内容的知识梗概. 我们知道,游戏行业其实一直很缺一本系

分享25个实用的博客,有助你提高编程技巧

编程是一个不断变化的领域,一旦你选择了它作为你的职业,你就不可能停下学习的脚步了.因为科技的发展月新日异,要跟得上它发展的脚步,你必须不断地努力学习.在Forbes.com最近发表的一篇文章(25 Practical Blogs To Sharpen Your Coding Skills)中,作者Tomas Laurinavicius 推荐了25个他认为很适合程序员或学习编程的人在工作或学习中阅读的博客. 1. Scott Hanselman 在微软担任网络平台开发的Scott Hanselma

Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)

原文:[原创]Matlab.NET混合编程技巧之--直接调用Matlab内置函数(附源码) 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要一点点混合编程基础的,基本概念和过程要懂一点,如果能简单成功混编一个简单的计算或者绘图例子

硬件设计节约成本经验笔记

硬件设计节约成本经验笔记 1.这些拉高拉低的电阻用多大的阻值关系不大,就选个整数5K吧 市场上不存在5K的阻值,最接近的是 4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍.20%精度的电阻阻值只有1.1.5.2.2. 3.3.4.7.6.8几个类别(含10的整数倍):类似地,20%精度的电容也只有以上几种值,如果选了其它的值就必须使用更高的精度,成本就翻了几倍,却不能带来任何好处. 2.面板上的指示灯选什么颜色呢?我觉得蓝色比较特别,就选它吧

VB编程技巧推荐

VB编程技巧推荐   1.zyl910的专栏——理论水平高 用VB写高效的图像处理程序 V2.0 优化分支代码——避免跳转指令堵塞流水线 2.Laviewpbt的专栏 —— 有很多算法的代码,实用性高 神经网络学习笔记3:BP神经网络的实现及其应用 神经网络学习笔记1:感知机和线性神经网络的实现 标准的遗传算法求函数最大值 模糊聚类算法(FCM)和硬聚类算法(HCM)的VB6.0实现及其应用 基于模糊等价关系的模糊聚类分析 模拟Photoshop中图层混合模式 几种经典的二值化方法及其vb.ne

十点提高编程技巧

1.学习一门新的编程语言(Learn a new programming language) 学习一门新的编程语言将有助于你开拓新的思维方式,特别是当你使用不熟悉的语言时,你将学习到很多种思维方法应用到语言中.而所学习到的新思维方式,你可以运用在你所熟知的语言中.甚至有时你会使用新学的语言进行你的重要项目. 提供学习经验包含: Lisp (Scheme is good), Forth, PostScript or Factor (stack-oriented programming langua