• 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
返回

电子发烧友 电子发烧友

  • 全文搜索
    • 全文搜索
    • 标题搜索
  • 全部时间
    • 全部时间
    • 1小时内
    • 1天内
    • 1周内
    • 1个月内
  • 默认排序
    • 默认排序
    • 按时间排序
  • 全部板块
    • 全部板块
大家还在搜
  • 至芯炼狱传奇系列

    1. 炼狱传奇— 备战(软件安装)2.炼狱传奇— 初涉战场(开发流程) 3. 炼狱传奇— 赋值语句之战 4.炼狱传奇— 关系运算符之战5.炼狱传奇— if_else与case之战 6.炼狱传奇

    2014-11-19 11:26

  • VGA之战

    2020-04-28 15:55

  • 小白入坑Linux嵌入式ARM的苦逼历程(一)精选资料分享

    小白入坑Linux嵌入式ARM的苦逼历程(一)起源:单片机之战彷徨:何去何从机遇:重拾方向入坑:脱发危机总结:菜鸟展翅起源:单片机之战本小白本科专业机电一体化,大二暑假第一次在学长那听到“单片机

    2021-07-16 06:02

  • 炼狱传奇-赋值语句之战

    Verilog HDL语言中存在两种赋值语言:● 非阻塞型赋值语句● 阻塞型赋值语句1. 非阻塞型语句以赋值操作符“

    2015-03-22 10:23

  • db4o指南简介概览

    在我出道成为程序员的时候,数据库之战似乎已完全平息。Oracle 和其他几个数据库供应商都非常支持和看好关系模型及其标准查询语言SQL。实际上,坦率地讲,我从未将任何关系数据库的直接祖先,比如 IMS 或无处不在的平面文件,用于长期存储。客户机/服务器看起来似乎长久不衰。

    2019-05-24 07:20

  • 继电器

    本帖最后由 V未来之战V 于 2017-10-9 20:38 编辑 使用12DC JQC-3FF-S-Z型号继电器,给继电器一个高电平信号,继电器状态指示灯变红,电源指示灯变绿,但继电器就是不吸合,请各位大神们知道这是什么原因吗?

    2017-10-09 20:37

  • 炼狱传奇-缩减运算符之战

    缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也是几位数。而缩减运算则不同,缩减运算是对单个操作数进行与或非递推运算,最后的运算结果是一位的二进制数。缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行与或非运算,第二步将运算结果与第三位进行与或非运算,依次类推,直到最后一位。例如:reg[3:0]B;reg C;C=&B;相当于C=((B[0]&B[1])&B[2])&B[3];下面我们编写一个实例,通过仿真波形来验证运算结果是否如我们所说。可综合模块如下: 编写测试代码如下: 仿真波形如下: 通过该波形可以看出,当变量B的四个位全部为高时,由于是“逻辑与”的运算,所以最终输出的变量C为高电平。 那么如果我们在变量B中加入一个零,结果会如何呢?我们仿真如下: 可以看到,如果变量B中存在零,那么输出结果由于“逻辑与”会得到低电平。--------------------------------------------------------------------------------------------------------------------E-mail:zxopen09@126.comQQ:984456098

    2015-04-08 14:04

  • 炼狱传奇-task_function之战

    1. task(任务)与function(函数)的不同任务与函数主要有以下四点不同:l函数只能与主模块共用一个仿真时间单位,而任务定义自己的仿真时间单位。l函数不能启动任务,任务可以启动其他任务和函数。l函数至少要有一个输入变量,而任务可以没有或有多任何类型的变量。l函数返回一个值,而任务不返回值。2.task语句说明l任务的定义定义任务的语法如下:task ………… endtaskl任务的调用及变量的传递任务的调用: (端口1,端口2,…..,端口n);下面举例子说明怎么定义任务与调用任务:任务定义: taskmy_task;input a,b;output c;….endtask 任务调用:my_task(v,w,x); 任务调用变量(v,w,x)和任务定义的I/O变量(a,b,c)之间是一一对应的,当任务启动时,由v和w传入的变量赋给了a和b,而当任务完成之后的输出又通过c赋给x,下面举一个具体程序来介绍,代码如下:测试代码如下:仿真波形图如下: 当start信号变成高电平的时候,即当state状态由0跳变到1时,调用load任务,把data_in的值寄存在save_data的同时状态机状态跳转到2,当状态跳转到2的时候,调用shift任务,把save_data的值往左移一位的同时状态机状态跳转到3,当状态跳转到3的时候,调用out任务,把save_data的值往data_out赋值的同时状态机状态跳转到0,仿真的波形跟设计的完全一样。3.function说明语句l定义函数的语法:function(函数名);begin………endendfunction注意:这一项是可选项,如缺省则返回值位一位寄存器类型数据l举例说明下面举一个实际程序的例子,来说明一下function函数的实际定义与如何调用。代码如下:测试代码如下:仿真波形如下: 当start信号变成高电平的时候,即当state状态有0跳变到1时,调用load_data(data_in)函数,把data_in的值寄存在save_data的同时状态机状态跳转到2,当状态跳转到2的时候,调用shift(save_data)函数,把save_data的值往左移一位的同时状态机状态跳转到3,当状态跳转到3的时候,调用load_data(save_data)函数,把save_data的值往data_out赋值的同时状态机状态跳转到0,仿真的波形跟设计的完全一样。

    2015-05-13 11:19

  • 炼狱传奇-if_else与case之战

    Verilog HDL语言中存在两种分支语言:● if-else 条件分支语句● case 分支控制语句1. if-else条件分支语句if-else 条件分支语句的作用是根据指定的判断条件是否满足来确定下一步要执行的操作。它在使用时可以采用如下三种形式:(1)if()语句或语句块;在if-else 条件语句的这种使用形式中没有出现else项,这种情况下条件分支语句的执行过程是:● 如果指定的成立(也就是这个条件表达式的逻辑值为”1”),则执行条件分支语句内给出的“语句或语句块”,然后退出条件分支语句的执行。● 如果不成立(也就是条件的表达式的逻辑值为”0”、”x”、”z”),则不执行条件分支语句内给出的”语句或语句块”,而是直接退出条件语句的执行。例如程序1仿真图这段程序在运行时,就会根据根据条件表达式“sel==1”是否成立来决定是否执行赋值语句“out==a”如仿真图,如果sel==1时,则赋值语句就会得到执行,输出信号out得到a的值1,如果sel==0时,则不执行的赋值语句,输出信号out保持原有的值不变。如图,当sel==0时,out保持原值1不变。(2)if() 语句或语句块1 else 语句或语句块2 这种形式的条件分支语句将以如下方式得到执行:● 如果指定的成立(也就是这个条件表达式的逻辑值为“1”),则执行条件分支语句第一行所指定的语句或语句块1,然后结束条件分支语句的执行。● 如果不成立,则执行由条件分支语句内第二行的else项指定的语句或语句块2,然后结束条件分支语句的执行。例如程序2仿真图在运行这段程序时,会根据条件表达式“sel==1”是否成立来决定执行两条过程赋值语句中的哪一条。如果sel==1,则第一行if这项所指定的赋值语句out=a,得到执行,输出信号out 得到a的值1,如图所示。如果sel!==1,则执行第二行else 项所指定的赋值语句out=b,输出信号out得到b的值。(3)if() 语句或语句块1else if( )语句或语句块2………else 在执行这种形式的if-else条件分支语句时,将按照各分支项的排列顺序对各个条件表达式是否成立做出判断,当遇到某一项的条件表达式成立时,就执行这一项所指定的语句或语句块。 如果所有的条件表达式都不成立,则执行最后的else项。 这种形式的if-else条件分支语句实现了一种多路分支选择控制。例如程序3仿真图 如果sel1的值为1,则第一个分支项的条件表达式sel1成立,因而第一分支项所指定的赋值操作out=a.执行。 如果sel2的值为1,sel1的值不为1,则第二个分支项的条件表达式sel2成立,因而第二个分支项所指定的赋值操作out=b,执行。 如果sle1和sel2的值都不为1,则执行else 分支语句这一项操作out=c执行。(4)Verilog HDL 允许if-else条件分支语句的嵌套使用。 If()//外层if语句 If()//内层if语句1 Else //内层else语句2Else//外层else语句1 If()//内层if语句3 Else //内层else语句41.case分支控制语句case分支语句是另一种用来实现多路分支控制的分支语句。与使用if-else条件分支语句相比,采用case分支语句来实现多路控制将显得更为方便与直观。Case分支语句通常用于对微处理器指令译码功能的描述以及对有限状态机的描述。Case分支语句有“case”、“casez”、“casex”三种形式。(1)case语句case():语句块1:语句块2:语句块3………:语句块nDefault: 语句块n+1;Endcase代表着对程序流向进行控制的控制信号:各个则是控制表达式的某些具体状态取值,在实际使用中这些分支项表达式通常是一些常量表达式:各个“语句”则指定了在各个分支下所要执行的操作,它们也可以是由单条语句构成,处于最后的、以关键词default开头的那个分支项称为“default”分支项,它是可以缺省的。Case语句的执行过程:(1)当“控制表达式”的取值等于“分支项表达式1”时,执行第一个分支项所包含的语句块1.(2)当“控制表达式”的取值等于“分支项表达式2”时,执行第一个分支项所包含的语句块2.………….(n)当“控制表达式”的取值等于“分支项表达式n”时,执行第一个分支项所包含的语句块n. (4)在执行了某一分支项内的语句后,跳出case语句结构,终止case语句的执行。Case语句中各个“分支项表达式”的取值必须是互不相同的,否则就会出现矛盾现象。例如程序4仿真图Case语句在执行时,控制表达式和分支项表达式之间进行的比较是一种按进位进行的“全等比较”,也就是说,只有在分支项表达式和控制表达式对应的每一位都是彼此相等的情况下才认为分支项表达式和控制表达式两者是“相等”的,对应的语句块就会被执行。1.case语句和if-else的区别if-else 语句的执行是有优先级的判断,按照优先级的顺序执行语句;而case语句没有先级的考虑,只跟对应的逻辑值有关系,只要逻辑值对应相等就执行对应的语句块。

    2015-03-31 09:51

  • 华为的LiteOS物联网操作系统介绍

    想必大家都了解了中美之战对中国以及华为的影响。这个时候需要力挺华为,同时,有必要力挺一下LiteOS.1写在前面今天,任老先生出来说话了,可能部分朋友已经知道了。看得出来,任总的眼界和格局不是一般人

    2022-02-23 06:03