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…
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…
无论学习.只看不练是坏科学. 因此,要总结回想这怎么生产MMROPG小地图的游戏.于MMROPG游戏类,在游戏世界中行走时导致各地,通常在屏幕的右上角,将有一个区域,以显示当前的游戏场景微缩.在游戏世界中的主角移动,小地图代表了一个小标记的主角也将移动. 那怎么实现咧? 首先须要确定两个贴图,第一个是右上角的小地图背景贴图,应该是从Y轴鸟瞰向下截取主角所在的位置大地图. 第二个就是主角的位置大贴图.在本例中,由于没有学习unity地图制作.所以地图用一个面对象取代,主角用立方体取代,使用GUI来…
第一个小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…
在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;…
作者:桂. 时间: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…
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=~…
这里采用夏宇闻教授第十五章的序列检测为例来学习; 从以上的状态转换图可以写出状态机的程序: module seqdet(x,out,clk,rst); input x,clk,rst; output out; :]state; wire out; 'b0, A='d1, B='d2, C='d3, D='d4, E='d5, F='d6, G='d7; )?:; always @(posedge clk or negedge rst) begin if(!rst) state=IDLE; els…
因为大多数的FPGA内部的触发器数目相当多,又加上独热码状态机(one hot code machine)的译码逻辑最为简单,所以在FPGA实现状态机时,往往采用独热码状态机(即每个状态只有一个寄存器置位的状态机).建议采用case语句来建立状态机的模型,因为这些语句表达清晰明了,可以方便的由当前状态转向下一个状态并设置输出.记得:不要忘记在case语句的最后写上default分支,并将状态设置为'bx这就等于告诉综合器case语句已经指定了所有的状态.这样综合器就可以删除不必要的译码电路使生成…