出处:http://bbs.ednchina.com/BLOG_ARTICLE_3013262.HTM 综合软件:Quartus II 一.有优先级的if语句 if..else if.. else if … …else..语句中是有优先级的,第一个if具有最高优先级,最后一个else优先级最低.Quartus综合出的RTL图认为,最高优先级的电路靠近电路的输出,输入到输出的延时较短:最低优先级的电路远离输出端,输入到输出的延时较长. module single_if_late(A, C, CTR…
情境: FPGA里面计数器需要复位(计数值置零),与计数器状态有关的行为是状态机控制的,即状态机为CLEAR_TIMER状态时,计数器才完成清零动作. 清零有两个条件:(1)计数器值溢出(达到OVF门限):(2)清零信号有效(1有效).这两个条件是独立的,没有先后关系的约束. 问题是:如何写Verilog语句,才使得这两个触发的优先级相同? 有两个思路: 一个是: always@(posedge clk)begin if(!rst_n)begin stat_preload <= STAT_IDL…
刚开始接触Verilog HDL语言时,这种硬件描述语言有一点与软件的程序设计语言直观上的最大区别大概就是这个赋值语句了(这里只是强调直观上的最大区别,事实上的最大区别并非如此). Verilog HDL中的赋值方式有两种:阻塞赋值与非阻塞赋值. 之前也看过很多种解释,例如,阻塞赋值(=)适用于时序电路的设计,非阻塞赋值(<=)适用于组合电路的设计:还有阻塞赋值和非阻塞赋值只是语法上存在的现象等等,这类解释让人云里雾里,似乎没能接触到其精髓. 今日偶看夏宇闻老师的著作<从算法设计到硬件逻辑的实…
芯航线--普利斯队长精心奉献   实验目的:掌握阻塞赋值与非阻塞赋值的区别 实验平台:无 实验原理:     阻塞赋值,操作符为"=","阻塞"是指在进程语句(initial和always)中,当前的赋值语句阻断了其后的语句,也就是说后面的语句必须等到当前的赋值语句执行完毕才能执行.而且阻塞赋值可以看成是一步完成的,即:计算等号右边的值并同时赋给左边变量.     非阻塞赋值,操作符为"<=","非阻塞"是指在进程语句(…
Verilog语言中讲的阻塞赋值与非阻塞赋值,但从字面意思来看,阻塞就是执行的时候在某个地方卡住了,等这个操作执行完在继续执行下面的语句,而非阻塞就是不管执行完没有,我不管执行的结果是什么,反正我继续下面的事情.而Verilog中的阻塞赋值与非阻塞赋值正好也是这个意思,通过执行一个例子,就可以简单地明白了:1.阻塞赋值可以理解为语句的顺序执行,因此语句的执行顺序很重要2.非阻塞赋值可以理解为语句的并行执行,所以语句的执行不考虑顺序3.在assign的结构中,必须使用的是阻塞赋值 //阻塞modu…
PGA的硬件设计不同于DSP和ARM系统,比较灵活和自由.只要设计好专用管脚的电路,通用I/O的连接可以自己定义.因此,FPGA的电路设计中会有一些特殊的技巧可以参考. 1. FPGA管脚兼容性设计 FPGA在芯片选项时要尽量选择兼容性好的封装.那么,在硬件电路设计时,就要考虑如何兼容多种芯片的问题.例如,EP2C8Q208C8和EP2C5Q208这两个型号的FPGA.其芯片仅有十几个I/O管脚定义是不同的.在EP2C5Q208芯片上,这几个I/O是通用I/O管脚,而在EP2C8Q208C8芯片…
今天分享一个STM32F103为主控的自平衡车机器人的硬件电路设计.(亲测完全可用,且没有任何问题) 电路原理图: 电源部分采用12V锂电池作为输入,分三路稳压,其中7805作为5V传感器的供电以及后级AMS1117的电源输入端,一路AMS117 3.3单独给CPU供电,另外一路给3.3V传感器供电.本方案自带板载充电以及电压检测功能 时钟电路采用8M外部时钟,以及32.768K的RTC时钟,可方便拓展 复位电路,采用上电自复位以及手动复位 下载电路采用JTAG下载电路 按键+OLED可以实现在…
块语句是指将两条或者两条以上的语句组合在一起,使其在格式上更像一条语句.块语句分为两种: 1)用begin_end语句,通常用来标识顺序执行的语句,用它标识的块称作顺序块: 2)用fork_join语句,通常用来标识并行执行的语句,用它标识的块称作并行块. A)顺序块 begin 语句1: 语句2: .... 语句n: end begin:块名 块内声明语句 语句1: 语句2: .... 语句n: end 特点: 1)块内的语句是按照顺序执行的,即只有上面一条语句执行完后下面的语句才能执行: 2…
CAN总线系列讲座第五讲--CAN总线硬件电路设计一  实战学习背景 CAN总线节点的硬件构成方案有两种,其中的方案:(1).MCU控制器+独立CAN控制器+CAN收发器.独立CAN控制器如SJA10000.MCP2515,其中MCP2515通过SPI总线和MCU连接,SJA1000通过数据总线和MCU连接.该方案编写的CAN程序是针对独立CAN控制器的,程序可移植性好,编写好的程序可以方便的移植到任意的MCU.但是,由于采用了独立的CAN控制器,占用了MCU的I/O资源,并且电路变得复杂.为了…
设计方法:    分析真值表规律        两种描述方式: 方式1:用assign描述,用阻塞赋值= 方式2:用always@(*)描述,用非阻塞赋值<=      选择功能的三种描述方式: 方式1:三目运算符 ? :  ; 方式2:if...else if.....else(有优先级) 方式3:case....default...(并行) 例1.mux2二选一数据选择器 //方式1(先列出端口,后定义端口属性) module mux2( a, b, sel, out ); //端口属性定义…