本节主要对有符号数的十进制与二进制表示以及一些数值变换进行简单的总结。定义一个宽度为DW的二进制补码格式的数据dbin,其表示的有符号十进制数字为ddec。reg[DW-1:0]dbin;1.十进制有符号数转二进制补码正数的补码为原码。假如十进制数ddec为负数,则计算其对应的二进制补码的方法主要有2种:将ddec最高位符号位改写为1,剩余数值部分取反加一例如,4bit数字-6的数值部分为4'b0110,取反加一后为4'b0010,高位改写后为4'b1010。dbin={1'b1,~3'b110+3'b1};//4'b1010将负数ddec直接与其代表的最大数值范围数相加(有人称之为模数)例如
本节主要对有符号数的十进制与二进制表示以及一些数值变换进行简单的总结。定义一个宽度为DW的二进制补码格式的数据dbin,其表示的有符号十进制数字为ddec。reg[DW-1:0]dbin;1.十进制有符号数转二进制补码正数的补码为原码。假如十进制数ddec为负数,则计算其对应的二进制补码的方法主要有2种:将ddec最高位符号位改写为1,剩余数值部分取反加一例如,4bit数字-6的数值部分为4'b0110,取反加一后为4'b0010,高位改写后为4'b1010。dbin={1'b1,~3'b110+3'b1};//4'b1010将负数ddec直接与其代表的最大数值范围数相加(有人称之为模数)例如
DDS原理DDS(直接频率合成)技术是根据奈奎斯特抽样定理及数字处理技术,把一系列的模拟信号进行不失真的抽样,将得到的数字信号存储在存储器中,并在时钟的控制下,通过数模转换,将数字量变成模拟信号的方法。DDS模块主要由相位累加器、查找表、DAC转换器和低通滤波器组成,基本结构如下。相位累加器,是DDS的核心组成部分,用于实现相位的累加,并输出相应的幅值。相位累加器由M位宽加法器和M位宽寄存器组成,通过时钟控制,将上一次累加结果反馈到加法器输入端实现累加功能,从而使每个时钟周期内的相位递增数为K,并取相位累加结果作为地址输出给ROM查找表部分。幅值查找表,存储着每个相位对应的二进制数字幅度。在每
DDS原理DDS(直接频率合成)技术是根据奈奎斯特抽样定理及数字处理技术,把一系列的模拟信号进行不失真的抽样,将得到的数字信号存储在存储器中,并在时钟的控制下,通过数模转换,将数字量变成模拟信号的方法。DDS模块主要由相位累加器、查找表、DAC转换器和低通滤波器组成,基本结构如下。相位累加器,是DDS的核心组成部分,用于实现相位的累加,并输出相应的幅值。相位累加器由M位宽加法器和M位宽寄存器组成,通过时钟控制,将上一次累加结果反馈到加法器输入端实现累加功能,从而使每个时钟周期内的相位递增数为K,并取相位累加结果作为地址输出给ROM查找表部分。幅值查找表,存储着每个相位对应的二进制数字幅度。在每
前言本教程主要讲述Verilog完成数字IC设计(数字集成电路设计,DigitalIntegratedCircuitDesign)时涉及的一些知识,更加注重数字电路安全、稳定、方便的实现。将该教程理解为《Verilog教程》的高级篇,也再适当不过。内容主要包括:底层(1章门级建模、2章用户自定义原语UDP、9章逻辑综合)、时序(3章时序分析)、优化(4章同步与异步、5章复位与时钟、6章低功耗设计)、技巧(7章系统任务、8章编程语言接口PLI)。谁适合阅读本教程本教程主要针对具有一定Verilog和数字电路基础的同学打造。阅读本教程前,请先参考基础篇《Verilog教程》。CatMe基础篇《Ve
前言本教程主要讲述Verilog完成数字IC设计(数字集成电路设计,DigitalIntegratedCircuitDesign)时涉及的一些知识,更加注重数字电路安全、稳定、方便的实现。将该教程理解为《Verilog教程》的高级篇,也再适当不过。内容主要包括:底层(1章门级建模、2章用户自定义原语UDP、9章逻辑综合)、时序(3章时序分析)、优化(4章同步与异步、5章复位与时钟、6章低功耗设计)、技巧(7章系统任务、8章编程语言接口PLI)。谁适合阅读本教程本教程主要针对具有一定Verilog和数字电路基础的同学打造。阅读本教程前,请先参考基础篇《Verilog教程》。CatMe基础篇《Ve
良好的编码风格,有助于代码的阅读、调试和修改。虽然Verilog代码可以在保证语法正确的前提下任意编写,但是潦草的编码风格往往是一锤子买卖。有时回看自己编写的代码,既看不出信号的意义,也不了解模块的功能,还得从逻辑上一步步分析,就会消耗大量的时间和精力去消化,严重影响设计进度。为了不让别人或自己由衷的感叹出:这特喵的是哪个"小傻宝"写的代码!下面对编码风格进行一定意义上的建议。关于命名信号变量、模块等一定要使用有意义的名字,且信号名称在模块间穿梭时也应该保持不变,以便代码自身就具有清晰的说明信息,增强可读性。当名字单词数量过多时,可以使用首字母大写或下划线"_"进行拼接。个人喜欢后者,比较清晰