verilog语法学习心得

verilog语法学习心得(转载) verilog语法学习心得 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计2.数字系统的构成: 传感器  AD  数字处理器  DA  执行部件3.程序通在硬件上的执行过程:     C语言(经过编译)-->该处理器的机器语言(放入存储器)-->按时钟的节拍,逐条取出指令、分析指令、执行指令4.DSP处理是个广 阅读详情

verilog语法学习心得

1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计

2.数字系统的构成: 传感器  AD  数字处理器  DA  执行部件

3.程序通在硬件上的执行过程:
     C语言(经过编译)-->该处理器的机器语言(放入存储器)-->按时钟的节拍,逐条取出指令、分析指令、执行指令

4.DSP处理是个广泛概念,统指在数字系统中做的变换(DFT)、滤波、编码解码、加密解密、压缩解压等处理

5.数字处理器包括两部分:高速数据通道接口逻辑、高速算法电路逻辑

6.当前,IC产业包括IC制造和IC设计两部分,IC设计技术发展速度高于IC设计

7.FPGA设计的前续课程:数值分析、DSP、C语言、算法与数据结构、数字电路、HDL语言 计算机微体系结构

8.数字处理器处理性能的提高:软件算法的优化、微体系结构的优化

9.数字系统的实现方式:
     编写C程序,然后用编译工具得到通用微处理器的机器指令代码,在通用微处理器上运行(如8051/ARM/PENTUIM)
     专用DSP硬件处理器
     用FPGA硬件逻辑实现算法,但性能不如ASIC
     用ASIC实现,经费充足、大批量的情况下使用,因为投片成本高、周期长

10.FPGA设计方法: IP核重用、并行设计、层次化模块化设计、top-down思想
   FPGA设计分工:前端逻辑设计、后端电路实现、仿真验证

11.matlab的应用:
     matlab中有许多现成的数学函数可以利用,节省了复杂函数的编写时间
     matlab可以与C程序接口
     做算法仿真和验证时能很快生成有用的数据文件和表格
     DSP builder可以直接将simulink模型转换成HDL代码,跳过了中间的C语言改写步骤

12.常规从算法到硬件电路的开发过程:
     算法的开发
     C语言的功能描述
     并行结构的C语言改写
     verilog的改写
     仿真、验证、修正
     综合、布局布线、投入实用

13.C语言改写成verilog代码的困难点:
     并行C语言的改写,因为C本身是顺序执行,而不是并行执行
     不使用C语言中的复杂数据结构,如指针
     目前有将C语言转换成verilog的工具?

14.HDL
     HDL描述方法是从电路图描述方法演化来的,相比来说更容易修改
     符合IEEE标准的有verilog HDL和VHDL
     VHDL由美国国防部开发,有1987和1993两个版本
     verilog由cadence持有,有1995、2001、2005三个版本
     verilog较VHDL更有前景:具有模拟电路描述能力、不仅可以开发电路还可以验证电路、门级以下描述比VHDL强
     RTL级和门级的综合已经成熟,主要是注意行为级的综合结果,使用可综合的编程风格
     SYSTEM VERILOG是VERILOG的一种延伸

15.IP核的应用:
     软核soft core: 功能经过验证的、可综合的、实现后门数在5K以上的HDL代码
     固核firm core: 功能经过验证的、可综合的、实现后门数在5K以上的电路结构编码文件,如edif,不可更改
     硬核hard core:  功能经过验证的、可综合的、实现后门数在5K以上的电路结构版图,已带工艺参数,不可更改

16.HDL语言综合后得到EDIF,这是一种标准电路网表
   EDIF经过具体工艺库匹配、布局布线、延时计算后得到网表
   EDIF不可更改,作为固核存在

17.verilog特点:
     区分大小写,所有关键字都要求小写
     不是强类型语言,不同类型数据之间可以赋值和运算
     //是单行注释  可以跨行注释
     描述风格有系统级描述、行为级描述、RTL级描述、门级描述,其中RTL级和门级别与具体电路结构有关,行为级描述要遵守可综合原则
     门级描述使用门级模型或者用户自定义模型UDP来代替具体基本元件,在IDE中针对不同FPGA器件已经有对应的基本元件原语
    
18.verlog语法要点:
     module endmodule之间由两部分构成:接口描述和逻辑功能描述
     IO端口种类: input  output  inout
     相同位宽的输入输出信号可以一起声明, input[3:0] a,b; 不同位宽的必须分开写
     内部信号为reg类型,内部信号信号的状态: 0  1  x   z,  3'bx1=3'bxx1 x/z会往左扩展  3'b1=3'b001 数字不往左扩展
     逻辑功能描述中常用assign描述组合逻辑电路,always既可以描述组合逻辑电路又可以描述时序逻辑电路,还可以用元件调用方法描述逻辑功能
     always之间、assign之间、实例引用之间以及它们之间都是并行执行,always内部是顺序执行
     常量格式: <+/-><二进制位宽><'><进制><该进制的数值>:
          默认进制为10进制
          默认位宽为32位
          位宽是从二进制宽度角度而言的
          由位宽决定从低位截取二进制数2'hFF=2'b11,通常由被赋值的reg变量位宽决定
     parameter常用于定义延迟和变量位宽,可用常量或常量表达式定义
     变量种类: wire reg  memory
          IO信号默认为wire类型,除非指定为reg类型
          wire可以用作任何输入输出端口
          wire包括input output inout
          wire不带寄存功能
          assign赋值语句中,被赋值的信号都是wire类型
          assign之所以称为连续赋值,是因为不断检测表达式的变化
          reg类型可以被赋值后再使用,而不是向wire一样只能输出,类似VHDL中的buffer端口
          reg类型变量初始值为x (VHDL中初始值为本类型最小值,通常是0)
          always模块里被赋值的信号都必须定义为reg类型,因为always可以反复执行,而reg表示信号的寄存,可以保留上次执行的值
          reg类型变量与integer变量不同,即使赋负值,实质上也是按二进制无符号数存储的,integer是有符号数
          verilog中所有内部信号都是静态变量,因为它们的值都在reg中存储起来了
          memory型只有一维数组,由reg型变量组成
          memory初始化只能按地址赋值,不能一次性赋值
          1*256的memory写法: reg mema[255:0]     mema[3]=0;
          不同位宽的变量之间赋值,处理之前都以被赋值的变量位宽为准扩展或截取
          A[a:b] 无论a b谁大,a总是实际电路的信号高位,b总是实际电路的信号低位
          算术运算中如果有X值则结果为X
          for循环中的变量另外定义成integer,因为它不是实际信号,有正负;reg则以无符号数存在
     == 和!=只比较0、1,遇到z或x时结果都为x (x在if中算做假条件),结果可能是1、0、x
     ===和!==比较更加苛刻,包括x和z的精确比较,结果可能是0、1
     &&的结果只有1'b1或1'b0两种, A&A的结果位宽则是与A相同的
     {1,0}为 64'h100000000,所以拼接运算中各信号一定要指定位宽
     移位运算左移将保留 4'b1000<<1等于5'b10000,右移则舍弃 4'b0011等于4'b0001
     数字电路里位运算应用普遍,包括按位逻辑运算、移位运算、拼接运算、缩减运算
    
     非阻塞式赋值<=与阻塞式赋值=
         阻塞:在同一个always过程中,后面的赋值语句要等待前一个赋值语句执行完,后面的语句被该赋值语句阻塞
         非阻塞:在同一个always过程中,非阻塞赋值语句是同时进行的,排在后面的语句不会被该赋值语句阻塞
         <=:
             块结束后才能完成赋值
             块内所有<=语句在always块结束时刻同时赋值
             <=右边各变量的值是上一次时钟边沿时,这些变量当时的值
             用于描述可综合的时序电路
         =:
             =语句结束之后过程always才可能结束
             在always过程中,begin end块内按先后顺序立即赋值,在fork join内同时赋值(可能造成冲突)
             与assign连用描述组合电路
             begin end中阻塞的含义:begin  ...@(A) B=C...;  end   如果A事件不发生则永远不能执行下去,被阻塞了 
         由于时钟的延时(往往在ps级),多个always(posedge)之间究竟谁先执行是个未知数
         使用原则:同一个always过程块内建立时序电路用<= 
                    纯组合逻辑电路用=,生成的电路结构最简单,执行速度最快
                    同一个always块内不要混用<=和=
                    不要在多个always块内对同一个变量赋值(多源驱动)
       
     if else的三种形式,第三种形式适合描述优先编码器
     if条件中0/x/z当成假,1当成真,非0的数值也当成真
     case语句的三种: case(四种状态的比较)  casez(忽略z)  casex(忽略x和z,只看哪些位的信号有用)
     case语句中所有表达式值的位宽必须相等,default中不能将n'bx用'bx代替
     避免生成锁存器的方法: 电平触发时if后加else   case中加default    ?
     使用casex会将不必要的状态视为无关项,使得综合出来的电路最简单
     两种特殊的括号: begin 顺序语句... end     fork 并行语句... join,其差别在于块内语句的起止时间、执行顺序、相对延时
   
     块被命名后,其内部变量可以被调用,因为变量都是静态的(调用信号:对应电路中的一个信号线被引到另一处)
   
     initial块只无条件执行一次  always块在满足条件时不断执行
     initial常用来写测试文件, always块常用来写电路描述
     always既可以描述组合逻辑电路又可以描述时序逻辑电路
     always如果后面有敏感信号列表则不能用wait语句
     always既可以描述电平触发又可以描述边沿触发,wait只能描述电平触发
     assign常用于描述组合逻辑电路
     测试文件中一般都是现initial 后always
 
     生成语句:生成快的本质是使用循环内的一条语句代替多条重复的verilog语句,简化了用户的编程
               genvar用于声明生成变量,生成变量只能用在生成快之间
               仿真时,仿真器会将生成块中的代码展平,在确立后的方针代码中,生成变量是不存在的
               最好是先想象出来循环生成语句被展平后的电路样子,再写相关的描述语句

     task和function的区别:
               task可以定义自己的仿真时间单位,function与主模块共用同一个仿真时间单位
               函数不能启动任务,任务能够启动函数
               函数至少要有一个输入变量,任务没有输入变量
               函数返回一个值,任务不返回值
   
     一个模块的设计包括3个部分: 电路模块的设计  测试模块的设计  设计文档的编写
     设计者通过布局布线工具生成具有布线延迟的电路,再进行后仿真,得到时序分析报告
     从时序分析报告中可以知道电路的实际延迟t,同步电路内每个时钟周期要大于t,从而可确定该运算逻辑的最高频率
     综合器之所以能够实现加法器、乘法器是因为库中已经存在可配置的参数化器件模型
     FPGA内总线宽度容易自定义,以便实现高速数据流,三态数据总线相当于数据流的控制阀门
     数字系统内数据流的控制: 开关(或三态数据总线)、数据暂存部件(寄存器)、 同步状态机控制(整个系统在一个时钟域内)
   
     流水线操作pipe line:
         K级流水线就是从组合逻辑的输入到输出恰好有K个寄存器组,上一级的输出是下一级的输入
         流水线操作获得第一个结果的时间要比不用流水线操作的时间长,但以后结果获得时间都只需要一个时钟周期,提高了数据吞吐量
         流水线操作的保证:Tclk>K*(组合逻辑延迟+触发器的建立保持时间/触发时间),即时间片段要长于最大路径延迟
         体现了面积换速度的思想,在综合时考虑的是以面积小为主还是以速度为主
         本质上是一种同步逻辑
   
     同步时序逻辑和异步时序逻辑:
         同步时序逻辑指所有寄存器组由唯一时钟触发   always@(posedge clk)  或always@(negedage clk)
         异步时序逻辑指触发条件不唯一,任意一个条件都会引起触发  always@(posedge clk or posedage reset)
         目前的综合器是以同步时序逻辑综合的,因为同步时序逻辑较异步时序逻辑可靠
         严格的同步要求时钟信号传递速度远远大于各部分的延迟,实际中clk要单独用线,而不要经过反相器等部件
         always @(posedge.. )  begin ...<=... end  表示同步时序逻辑(同时刻赋值)
         不同速率数据接口的处理方法(异步数据的处理方法):帧同步    FIFO  双端口RAM
   
     同步状态机:
         包括moore和mealy型两种,及其反馈模型(是一种反馈控制系统,当前状态就是其内部状态变量)
         状态机的开发步骤:
             根据实际问题列出输入输出变量和状态数
             画出状态图并化简
             写出状态转移真值表得到逻辑表达式
             用D触发器或JK触发器构建电路(目前用D触发器多)
         verilog描述时只需要得到简化的状态图就可以描述
         状态编码方式: 独热码   格雷码
         状态机主体程序有单always描述方式和多always描述方式
         采用case/casez/casex建立模型最好,因为x是无关态,生成的电路最简单
         default: state='bx与实际情况更一致,效果等同于 default: state<=idle
         只有同步状态机才能被目前的综合


for语句会将所有变量的情况展开,占用巨量逻辑资源,替代办法是用计数器和case语句说明所有情况
有优先级的if else结构会消耗更多资源,建议用无优先级的case替代
模块的复用往往比代码上修改节省的资源多
PLL的分频、倍频、移相操作会增加设计精度
同步时序电路的延时:#x通常用于仿真测试,实际硬件延时是:长延迟用计数器,小延迟用D触发器,此方法用来取代延迟链
同步电路中,稳定的数据采用必须满足采样寄存器的建立和保持时间
reg类型在always中不一定综合成时序电路,也可能是组合逻辑电路
乒乓操作与作用  异步时钟域同步问题
延迟包括门延迟和线延迟
组合逻辑产生的时钟仅能应用在时钟频率较低、精度要求不高的情况下
增减敏感信号得到的结果一样

补充部分:

verilog HDL起初是作为写testbench而产生的
verilog 有1995进入IEEE标准,为IEEE-1364, 于2001年进行了扩展,为IEEE 1364-2001;
verilog AMS可用于模拟电路和数字电路的综合,目前正在不断发展和完善中;

verilog的标识符区分大小写,关键字使用小写;
用//来进行单行注释,用/* */来进行跨行注释;
标识符由字母、数字、下划线构成,并以字母开头;
关键字又叫保留字,只有小写的关键字才是保留字;

信号的状态有4种: 0 1 x z
x和z在描述电路时不区分大小写,在仿真时大小写有不同意义;

常量表达式中:
x z不区分大小写;
进制符号h o d b与H O D B不区分大小写;
十六进制中a~f不区分大小写;
下划线_用于提高可读性;
?在数中可以代替z;
x和z的左端补位;

字符和字符串都以ASICII码形式存在,也可以当成电路内的信号;
字符串必须包含在同一行,不能分成多行书写;
如果表达式或者赋值语句中将字符串当成操作数,则字符串中的每个字符都被看成8位的ASCII值序列;

可综合的信号类型:wire reg memory 它们用来描述数字电路
不可综合的数据类型:integer real 它们只用仿真,位于testbench中

wire是连线的抽象模型,不能保存数据,其值由驱动元的值决定;
wire不能用在always或initial块中;
wire的默认值为高阻z;
wire的使用情形: 1.作为模块的输出端口  2.用连续赋值语句assign赋值;
reg是1位寄存器(触发器)的抽象模型,可以保存数据;
reg必须用在always或initial块中;
reg的默认值为x;
reg的使用情形:1.阻塞赋值<= 2.非阻塞赋值=
memory只能是一维的;
memory只能对每个单元分别初始化,方法:1.一个一个赋值  2. 通过系统任务$readmem赋值
reg[3:0] fc;//一个4位寄存器   reg fc[3:0]  //4个一位寄存器

parameter的作用:仿真开始以前对其进行赋值,整个仿真过程中保持其值不变;

关系运算符将以逻辑1或逻辑0返回比较的结果;
== !=的返回值有0 1 x三种情况,=== !==的返回值只有0 1两种情况;

verilog由于是描述电路的,用于位的操作较多,有: 位逻辑操作,移位操作,并置操作,归约操作;
位逻辑运算的结果中,位数与原操作数一样多;
归约符是在原操作数的所有位上进行操作,并产生1位结果;
并置运算可以发生在bit与bit之间 bit与矢量之间 矢量与矢量之间

用于仿真的系统任务:
所有系统任务都必须在initial或always内;
所有系统任务都必须以$开头;
常见系统任务:
  显示任务($diplay系列和$write系列)
  监控任务($monitor系列)
  探测任务($strobe系列)
  文件打开、输入、关闭任务(&fopen &fclose &fdisplay...)
  读取文件任务($readmemb $readmemh)
  仿真结束控制任务($finish  $stop)
  随即信号任务($random)

过程块: initial块和always块
一个module内可以包含多个initial或always模块;
所有initial或always块在0时刻开始并行执行,各initial或always块内部顺序执行;
initial过程块主要是面向testbench的,通常不具有可综合性;
always过程块在描述电路时既可以描述组合逻辑电路(电平敏感)又可以描述时序逻辑电路(边沿敏感);
写testbench时initial通常用于初始化以及顺序波形的描述,always通常用于重复波形的描述;

任务task与函数function: 为了描述模块中被多次执行的部分以及为了增强代码的易读性
verilog中的高级程序语句如for循环语句只用在写testbench中;
begin end和fork join是两种特殊的括号
if语句的第三种形式适合描述优先编码器,case语句适合描述数据选择器和状态机;

case的条件表达式如果与分支项表达式长度不同,则在比较前将所有表达式都统一为这些表达式的最长长度;
casez忽略z,casex忽略z和x;

assign语句只在右端表达式发生变化时才重新计算并重新赋值,其余时间都是连续赋值;
assign语句可以指定bit、vector或是任意拼接操作的结果;
assign语句是连续赋值的,用于驱动网线wire, reg类型不需要连续赋值,reg类型一旦被赋值就会一直保存;

过程赋值语句有两种:阻塞式=和非阻塞式<=,只能在过程块initial和always中使用;
@对事件触发的控制与wait语句不能同时使用;

【verilog 设计】 reg有没有必要全部赋初值? 在知乎发现“reg有没有必要全部赋初值”这个问题,与自己近期对Verilog reg的进一步学习相契合,此文对这个问题进行总结。 阅读详情

相关推荐

TL431过压保护电路实战:5.5V阈值设计全流程(附MOSFET选型建议)

本文详细介绍了基于TL431和MOSFET构建5.5V阈值过压保护电路的完整设计流程。内容涵盖核心原理、阈值计算、驱动电路设计,并重点针对大电流应用场景,提供了MOSFET选型与散热处理的实战建议,帮助工程师打造可靠高效的电源保护方案。

weixin_28327051的博客 542

软硬件学习记录5—— Verilog语言中的数据类型

Verilog语言中的数据类型 在 Verilog 语言中,主要有三大类数据类型:寄存器数据类型、线网数据类型和参数数据类型。 1、寄存器类型 reg 1.1 概述: 寄存器数据类型的关键字是 reg,reg 类型数据的默认初始值为不定值x reg 是最常用的寄存器类型,寄存器类型通常用于对存储单元的描述,如 D 型触发器、 ROM等。 寄存器类型信号的特点是在某种触发机制下分配了一个值,在下一触发机制到来之前保留原值。 reg类型的数据只能在 always 语句和 initial 语句中被赋值。 如果

景墨轩 3893

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 897

【无标题】

reg与wire与memory区别。

create12137的博客 898

LTE随机接入实战:如何通过PRACH前导码优化小区覆盖半径(附计算公式)

本文深入探讨了LTE网络中PRACH前导码格式对小区覆盖半径的关键影响。通过解析不同前导码格式(如Format 0-3)的物理参数与覆盖能力,提供了核心计算公式与实战Python脚本,指导网络工程师根据覆盖需求、环境多径和容量等因素,科学选择前导码格式以优化边缘用户接入成功率,实现精准的网络规划与优化。

qq_27496129的博客 577

单路径微分相除和微分自乘相减算法(PGC-SDD-DSM)

PGC-SDD-DSM算法通过融合单路微分相除和差分自乘,解决了传统PGC解调技术对调制深度和光强干扰敏感的问题,显著提升了解调稳定性和抗失真能力。其高信噪比、低谐波失真以及对参数变化的鲁棒性,使其在光纤传感领域具有重要应用价值。PGC-SDD-DSM算法在计算复杂度方面具有显著的优势,主要体现在其高稳定性和低谐波失真上。这些优势使其在光纤光学干涉传感器中表现出色,尤其是在面对光强干扰和调制深度变化时。

百态·数智思维 | 聚焦大数据、量化与未来AI 844

Verilog给reg型变量赋初值

Verilog给reg型变量赋初值

TCCSTAR的博客 1万+

PyTorch强化学习实战(3)——Gymnasium API扩展功能

我们已经学习了编写智能体必需的 Gymnasium 核心功能,其余 API 功能部分虽然非必需,但能显著提升开发效率和代码整洁度。在本节中,我们简要地介绍了 Gymnasium API 的扩展功能,学习了如何以模块化的方式扩展现有环境的功能,并熟悉了使用包装器可视化智能体活动的方法。

盼小辉丶的博客 1215

[转]verilog语法学习心得

verilog语法学习心得 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  DA  执行部件 3.程序通在硬件上的执行过程:     C语言(经过编译)--&gt;该处理器的机器语言(放入存储器)--&gt;按时钟的节拍,逐条取出指令、分析指令、执行指令 4.DSP处理...

weixin_33805992的博客 181

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3484

【RT-DETR涨点改进】独家创新改进篇 | AAAI2024 | RT-DETR引入CFBlock增强对长程依赖和全局语义信息的建模能力,有助于提升复杂场景下小目标、遮挡目标的检测精度

本文给大家介绍在RT-DETR中引入CFBlock模块,能够有效提升模型对长程依赖和全局语义信息的建模能力,在保持轻量化和高效推理的基础上增强特征表达力,特别有助于提升复杂场景下小目标、遮挡目标的检测精度,从而实现更优的精度与速度平衡。

Ai缝合怪、助力小伙伴高效发论文 261

Verilog HDL语法学习心得

从五月中旬开始进入到Verilog HDL语法学习、项目实战阶段,满打满算已经两个月时间了。这两个月全部在自习室度过,一直没有认真做一篇总结,主要还是抽不出时间来,因为几乎每天都有需要琢磨研究的东西。今天得空写一篇总结,一是告慰自己,二是希望能为后来学习者提供一些借鉴,尽量少走一些弯路。 从零基础开始,到现在一看到编译报错信息就可以判断出是什么类型的错误、怎么解决以及可以帮助别人解决一些简单的问题。这背后的辛酸也只有自己能体会到。 上图是我解答某公众号文章《工程师深度:FPGA高手养成记》中

Silence_tao的博客 1590

如何修改网页中的文本内容改成自己希望的数值?

本篇文章主要讲解,通过浏览器命令和浏览器自带的F12开发者工具,进行修改网页内容的方法教程 日期:2021年12月5日 作者:任聪聪 一、通过F12开发者工具进行修改 进入方式汇总: 1.右击鼠标,显示菜单找到审查 2.通过快捷键F12进入,笔记本需要先关闭fnlk功能键。 开发者工具介绍 说明: 1.表示选择元素,点击后可以选择文本的元素所在地 2.表示显示方式,手机还是电脑 3.表示div元素,点击后可以展开,对div内的html和文本进行编辑。 双击文本,即可进行修改成自己想要的,但是刷新后.

任聪聪的博客 2万+

【转】verilog语法学习心得

这是我在查verilog的有符号数和无符号数时看到的,觉得很好,转载于此,共同学习--------------------------------------------------------------------------------------------------------------------------verilog语法学习心得1.数字电路基础知识: 布尔代数、门级电路...

weixin_30735745的博客 177

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

verilog语法学习心得[zz]

地址:http://forum.eepw.com.cn/thread/163726/1 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成: 传感器 AD 数字处理器 DA 执行部件 3.程序通在硬件上的执行过程: C语言(经过编译)-->该处理器的机器语言(放入存储器)-->按时钟...

weixin_30621919的博客 250

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

自学FPGA:Verilog基本语法规则(一)

目录 前言 1.词法规定 1.1间隔符 1.2标识符和关键词 2.四种逻辑值 3.八种强度值 4.常量及其表示 4.1整数型表示 4.2实数型常量 4.3字符串常量 4.4参数语句 5.数据类型 5.1线网类型 5.2寄存器类型 参考文献 前言 笔者写这篇文章的目的主要是为了和大家分享一下学习心得...

Eden Garden 6929
上一篇: 第三部分 PLI 程序
下一篇: verilog语法学习心得
study16
博客等级 码龄18年 18粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值