verilog学习笔记(1)_两个小module】的更多相关文章

第一个小module-ex_module module ex_module( input wire sclk,//声明模块的时候input变量一定是wire变量 input wire rst_n,//末尾带有_n或者_b代表低电平有效 input wire [7:0] d, output reg [7:0] q//明模块的时候output变量可以是wire变量,也可以是reg变量 //reg变量必须在always块里赋值 ); //异步D触发器 always@(posedge sclk or n…
module-ex_cnt module ex_cnt( input wire sclk, input wire rst_n, output wire[9:0] cnt ); reg [9:0] cnt_r;//_r 代表reg always@(posedge sclk or negedge rst_n) if(rst_n == 1'b0) cnt_r <= 'd0;//'d0代表32位0,然后截取10位 else cnt_r <= cnt_r + 1'b1; assign cnt = cnt…
有限状态机: 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路: - 其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态: - 究竟转向哪一种状态不但取决于各个输入值,还取决于当前状态: - 状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的核心控制.…
[Hello World]第一个Lua程序将遵循传统做法,打印一句“Hello World”: print("Hello World") [阶乘]下面的程序用于输出输入值对应的阶乘: -- 定义一个阶乘函数 function fact (n) then else ) end end print("enter a number:") a = io.read("*number") -- 读取一个数字 print(fact(a))…
目录 第一步  安装JDK 第二步 下载Eclipse 第三步 在Eclipse中安装TestNG 第四步 下载Selenium IDE.SeleniumRC.IEDriverServer 第五步 下载Firefox.安装Selenium IDE.firebug.Xpath checker.Xpath finder插件 第六步 启动SeleniumRC 第七步 Eclipse执行Selenium的Java实例 第八步 TestNG执行Selenium的Java实例 下载地址 第一步  安装JDK…
小弟 自己的学习笔记,做练习的 ,缺陷还很多,做到无法解决速度问题就不想做下去了,如果要看的话 主要是思路问题,获取句柄,控制句柄而已,代码比较简单.大神勿喷啊 破解DEMO源码:http://download.csdn.net/detail/qq873113580/6380805 对应的密码生成软件,源码:http://download.csdn.net/detail/qq873113580/6373643 开发环境:VS2012  net formwork 4.5 这个是自己弄来玩玩的,主要…
module ex_case `timescale lns/1ns module ex_case( input wire rst_n, input wire sclk, output reg [7:0] o_dv, output reg [7:0] o_data, //数据输入 input wire [9:0] i_data, input wire [7:0] i_addr ); // reg [2:0] cnt_7; //不同功能的寄存器分开always来写,这样代码的可维护性强,可读性强 a…
注:本文是拜读了 深入理解JavaScript 之后深有感悟,故做次笔记方便之后查看. JQuery是一个很强大的JavaScript 类库,在我刚刚接触JavaScript的就开始用了. JQuery使用起来非常方便,以至于我这样的JS小白在任何网站上都会毫不犹豫的引入JQuery.....(我想这样做的不止我一个人吧,哈哈) 由于最近新项目中开始使用各种JavaScript 插件(JQueryUI, JQuery.dataTable,uploadify等....),需要进一步封装,以方便使用…
task 和 function 说明语句分别用来定义任务和函数,利用任务和函数可以把函数模块分成许多小的任务和函数便于理解和调试.任务和函数往往还是大的程序模块在不同地点多次用到的相同的程序段.输入.输出和总线信号的数据可以传入.传出任务和函数. task 和 function 的不同: 1)函数只能与主模块共用同一个仿真的时间单位,而任务可以自己定义自己的仿真时间单位. 2)函数不能启动任务,但是可以调用其它函数,但是任务可以调用其他函数和任务: 3)函数至少要有一个输入变量,而任务可以没有或…
前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型. (prototypal :原型.学好英语还是很重要的) 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大.实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多. 由于 JavaScript 是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链. 原型…
今天买的cpp到了从今天開始又一次学习cpp如今发现学校发的书真的不怎莫样. <em>#include<stdio.h>//预处理命令 int main()/*第一个被调用的函数.能够比作是一个房子的门()代表main是一个函数. int 指明了返回值的类型*/ { int num;/*声明语句.声明了两件事一有一个名为num的变量二int 说明生命的变量 是一个整形. int是一个keyword num 是一个标示符 */ num = 1;//给变量赋值 printf("…
先以一位全加器为例:Xi.Yi代表两个加数,Cin是地位进位信号,Cout是向高位的进位信号.列表有:   Xi     Yi    Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 由左边表格可知: Sum=X’Y'Cin+X'YCin'+XY'Cin'+XYCin=X'(Y⊕Cin)+X(Y⊙Cin)=X'(Y⊕Cin)+X(Y⊕Cin)'=X⊕Y⊕Cin…
h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应的上键盘字符为"~",这个符号并不是单引号"'".这里简单介绍最常用的`define `include `timescale. 1)宏定义`define 用一个指定的标识符(名字)来代表一个字符串,其的一般形式为: `define 标识符(宏名) 字符串(宏内容) 如:…
1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列表中的表达式或变量值的功能.其参数列表中输出格式控制字符串和输出列表的规则和$display一样.当启动一个带有一个或多个参数的$monitor时,仿真器则建立一个处理机制,使得每当参数列表中变量或者表达式的值发生变化是,整个参数列表中变量或者表达式的值都将输出显示.如果同一时刻,两个或多个参数的值…
在分频器电路中最重要的概念有两个:1)奇分频/偶分频:2)占空比. A)其中最简单的就是二分频电路,占空比为50%,其Verilog程序为 module half_clk(clr,clk_in,clk_out,out2); input clr,clk_in; output clk_out,out2; reg clk_out,out2; always @(posedge clk_in) begin ) ; out2=;end else begin clk_out<=~clk_out; out2=~…
因为大多数的FPGA内部的触发器数目相当多,又加上独热码状态机(one hot code machine)的译码逻辑最为简单,所以在FPGA实现状态机时,往往采用独热码状态机(即每个状态只有一个寄存器置位的状态机).建议采用case语句来建立状态机的模型,因为这些语句表达清晰明了,可以方便的由当前状态转向下一个状态并设置输出.记得:不要忘记在case语句的最后写上default分支,并将状态设置为'bx这就等于告诉综合器case语句已经指定了所有的状态.这样综合器就可以删除不必要的译码电路使生成…
在Verilog中可以采用多种方法来描述有限状态机最常见的方法就是用always和case语句.如下图所示的状态转移图就表示了一个简单的有限状态机: 图中:图表示了一个四状态的状态机,输入为A和Reset,同步时钟为clk,输出信号是K1和K2,状态机只能在信号的上升沿发生.  (A)下面是可综合的Verilog模块设计状态机的典型方法:(格雷码表示状态) module fsm(A,Reset,K2,K1,clk,state); input A,Reset,clk; output K2,K1;…
$display 和 $write 任务 格式: $display (p1,p2,...,pn); $write (p1,p2,..,pn); 这两个函数和系统的任务作用是用来输出信息,即将参数p2到pn按照参数p1给的格式输出.参数1通常称作“格式控制”,参数p2至pn通常称作输出表列.这两个任务的作用基本相同,但是$display自动的在输出后进行换行,而$write却不是这样.如果想在一行内输出多个信息,可以使用$write. 注意:其输出格式控制是用双引号括起来的字符串,可以包含以下两种…
学习OGRE有一段时间了,领导为了检测学习效果,根据已有C++项目,弄一个类似的用c#语言编写的小项目. 配置:win7,DirectX2009,vs2010. 项目要求: 1.有Ogre窗口(尺寸1600*900),周围有导航按钮(分别进行旋转拉伸平移操作)2.导入VIV手臂模型(左右手),默认只显示左手,通过按钮可以进行模型切换显示3.模型上有完整贴图,点光源绑在照相机上4.Ogre窗口中开小Viewport,从正上方俯视整条手臂5.导入消毒动画,并实现手背上消毒效果(本来就是对齐的)6.导…
C#学习中,问道艰辛,今自C学起,第一个函数学习:输入两个数比较大小,仅作练习: #include "stdafx.h" #include<stdio.h> // 包含stdio.h头文件 int max(int, int); // 函数声明 int main(){ int a,b; // 声明两个整型变量 printf("input two integer:");// 以空格为分隔 scanf("%d %d",&a,&…
作者:桂. 时间:2017-06-24  11:07:40 链接:http://www.cnblogs.com/xingshansi/p/7039237.html 前言 Verilog是硬件描述语言,不算FPGA的核心部分,以前没有接触过,找了本书翻看一下(<Verilog数字系统设计教程第三版>),顺便记录一些基础知识,从第三章开始. 第三章:模块结构.基本数据类型.基本运算符 A-模块的结构 0.模块基本定义 一个基本的模块就是: module name(in1,in2,...out1,o…
前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行.(小菜理解:的确看到好多,之前都不知道这是自执行匿名函数) 在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字,不过我听很多人都叫它为“自执行”,但作者后面说了很多,来说服大家称呼为“立即调用的函数表达式”.(小菜理解:不管叫什么,大概意思都是一样的…
写在前面的话 注:本文是拜读了 深入理解JavaScript 之后深有感悟,故做次笔记方便之后查看. 感觉这章的内容有点深奥....略难懂啊. 先坐下笔记,加深一下印象吧. 我主要记一下自己感觉有用的东西...哈哈 函数表达式和函数声明 在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明确了一点:函数声明必须带有标示符(Identifier)(就是大家常说的函数名称),而函数表达式则可以省略这个标示符: 函数声明: funct…
目录 1. id 和 == 2. 小数据池 3. 编码和解码 1. id 和 == id:id是一个内置的函数,可以查看变量存放的内存地址(实际上不是真正的物理地址,这里暂时这样理解),用于判断是变量否属指向了同一块内存地址 ==:== 可以用于判断两个变量的值是否相等,这个在之前的例子中也有用过 下面来看几个例子,以及具体的使用方法: In [1]: a = 'abc' In [2]: b = 'abc' In [3]: a == b Out[3]: True In [4]: a is b O…
项目说明 利用JSP.HTML.JS实现了一个简易的登陆系统.根据前两天的所学,实现了如下功能: a)用户名.密码验证(不基于数据库,只做一个简单的表单数据获取并验证) b)页面访问次数统计 c)验证用户名.密码为空的提醒弹窗 d)一个简易的根据输入错误次数来实现的防恶意登陆的小弹窗 相关知识点: a)主要利用form的POST方法传递数据,在此之外再基本利用<jsp:param>标签配合<jsp:forward>传递其他的相关数据. b)此外JavaScript可以完美嵌套于JS…
Verilog中的任何过程都可以属于以下四种结构的说明语句; 1) initial;  2) always;  3) task;   4) function; 1) initial说明语句: 一个程序中的 initial 和 always 的次数是不受限制的,他们都是在仿真的一开始同时开始运行的.initial 只执行一次,而 always语句则是不断地重复活动,直到仿真活动结束.但是always 后面的过程快是否运行,则要看他的触发条件是否满足,满足则运行一次,再满足再运行,直至仿真结束. 格…
块语句是指将两条或者两条以上的语句组合在一起,使其在格式上更像一条语句.块语句分为两种: 1)用begin_end语句,通常用来标识顺序执行的语句,用它标识的块称作顺序块: 2)用fork_join语句,通常用来标识并行执行的语句,用它标识的块称作并行块. A)顺序块 begin 语句1: 语句2: .... 语句n: end begin:块名 块内声明语句 语句1: 语句2: .... 语句n: end 特点: 1)块内的语句是按照顺序执行的,即只有上面一条语句执行完后下面的语句才能执行: 2…
在Verilog HDL语言中,信号有两种赋值方式. A)非阻塞赋值(Non-Blocking)方式(如:b<=a;) (1)在语句块中,上面语句所赋值的变量不能立即为下面的语句所用: (2)块结束后才能完成这次赋值操作,赋值的职位上次赋值得到的: (3)在编写可综合的时序逻辑模块时,这是最常用的复制方法. B)阻塞赋值(Blocking)方式(如:b=a;) (1)赋值语句完成后,块才结束: (2)b的值在赋值语句执行完后立刻改变. (3)在时序逻辑中使用时,可能会产生意想不到的结果. 补充:…
Verilog HDL的语言的运算符的范围很广,按照其功能大概可以分为以下几类: (1)算术运算符 +,-,*,/,% 优先顺序 !~ *  /   % +    - <<    >> <    <=  >   >= ==  !==  === !=== & ^  ^~ | && || ?: 最高优先级别 ↓ ↓ ↓ ↓ 最低优先级别 (2)赋值运算符 =,<= (3)关系运算符> ,<,>=,<= (4)…
Verilog中共有19种数据类型. 基本的四种类型: reg型.wire型.integer型.parameter型. 其他类型:large型.medium型.small型.scalared型.time型.tri型.trio型.tril型.triand型.trior型.trireg型.vectored型.wand型和wor型. 这14中数据类型除time外都与基本逻辑单元建库有关. A.常 量 (1)数 字 整数,整型常量即整常数有以下4种进制表示形式:1)二进制(b或B):2)十进制(d或D)…