怎么用Verilog hdl 设计一个智能的四路抢答器

作者&投稿:管师 (若有异议请与网页底部的电邮联系)
以verilog语言设计四人智力竞赛抢答器~

说详细点才可能

  随手写的。一如既往,未经过调试,但是ISE11.4综合无错误
  `timescale 1ns / 1ps
  //////////////////////////////////////////////////////////////////////////////////
  // Company:
  // Engineer:
  //
  // Create Date: 21:42:14 07/08/2010
  // Design Name:
  // Module Name: siluqiangdaqi
  // Project Name:
  // Target Devices:
  // Tool versions:
  // Description:
  //
  // Dependencies:
  //
  // Revision:
  // Revision 0.01 - File Created
  // Additional Comments:
  //
  //////////////////////////////////////////////////////////////////////////////////
  module siluqiangdaqi(clk,en,Input1,Input2,Input3,Input4,Input5,LED1,LED2,LED3,LED4,LED
  );
  input clk;
  input en;
  input Input1,Input2,Input3,Input4,Input5;
  output LED1,LED2,LED3,LED4,LED;
  reg LED1,LED2,LED3,LED4;
  reg[8:0]LED;
  reg inputflag;
  always@(posedge clk)
  begin
  if(en==1)
  begin
  if(Input5==1)
  begin
  LED1=0;
  LED2=0;
  LED3=0;
  LED4=0;
  LED=8'B11111100;
  inputflag=0;
  end
  else
  begin
  if(inputflag==0)
  begin
  if(Input1==1)
  begin
  LED1=1;
  LED=8'b011000000;
  inputflag=1;
  end
  else if(Input2==1)
  begin
  LED2=1;
  LED=8'b11011000;
  inputflag=1;
  end
  else if(Input3==1)
  begin
  LED3=1;
  LED=8'b11110010;
  inputflag=1;
  end
  else if(Input4==1)
  begin
  LED4=1;
  LED=8'b01100110;
  inputflag=1;
  end
  end
  else
  begin

  end

  end
  end
  else
  begin
  LED1=0;
  LED2=0;
  LED3=0;
  LED4=0;
  LED=8'B11111100;
  inputflag=0;
  end
  end


  endmodule

上学地 时候学过这个 现在不是很熟 不过你应该会用FPGA模拟单片机吧 我记得我们学校有一次实验就是用FPGA模拟的单片机做实验 你首先用FPGA模拟出一个单片机系统 然后写段单片机程序不就搞定下面的所用功能了 哈哈 你们老师也不会说你偷懒的


同步使能用verilog语言怎么表示?
下面是一个同步使能的例子代码 always @(posedge clk)if(enable)...所谓的同步其实是说信号跟时钟是同步的。一般在时序电路中出现。

verilog中wire一般什么时候应用?
有几种情况变量需要定义成wire。第一。assign 语句 例如:reg a,b;wire and_result;...assign and_result =a&&b;你可以试试把wire定义成reg。综合器会报错。第二。元件例化时候的输出必须用wire 例如:wire dout;ram u_ram (...out(dout)...);据你上面所说,wire就是连线的意思,一般在...

Verilog如何使用除法?
应当调出使用ISE中的除法器的ip核,直接写除号不能综合,在HDL中直接写乘除号都不能综合出电路的,那是留给访真用的语法。Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所...

用verilog定义一个四位数阶乘运算的代码怎么写
公式:n!=n*(n-1)!阶乘的计算方法 阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。例如所要求的数是6,则阶乘式是1×2×3×..×6,得到的积是720,720就是6的阶乘。

在Verilog HDL中如何使用系统任务$readmemb
数字中不定值x或X,高阻值z或Z,和在下划线(_)的使用方法及代表的意义与一般Verilog HDL程序中的用法和意义是一样的。另外,数字必须用空白位置或注释行来分隔开。对于上面6种系统任务格式,需补充说明一下5点:(1) 如果系统任务声明语句中和数据文件里都没有进行地址说明,则默认存放起始地址为该存储...

学习verilog HDL是什么步骤?要多久才能应用
学完Verilog,首先遍一些简单的组合或者时序电路来加深对Verilog语言的掌握,同时多看实例多积累经验。像初学者刚学完Verilog,编个计数器,时钟什么的,(时钟可以用数码管显示,这个简单)都是可以的,不要太复杂,算是练练手。也可以纯粹的在软件上仿真即可。开始的时候,推荐先在软件上仿真,然后再进行...

verilog里&的用法
& | ^的操作对象只有一个时为缩减运算 比如:reg [3:0] A;reg B;B = &A;等效于:B = A[0] & A[1] & A[2] & A[3];

用什么Verilog 编程软件好
Xilinx ISE 或Altera Quartus 都可以

请教问题:FPGA怎么读取dat文件数据?(用Verilog)
如果是文本格式的就用$readmemb,存储的时候都是连续的,只不过显示的时候可能会分成不同的位宽,读取的位宽取决于外部赋值的变量或寄存器的位宽,如果是二进制格式的就需要用system verilog 来操作了

请教:verilog语句parameter的用法。
initall=0,rec_data=1,data_pro=2,cmd_pro=3,send_ep1=4;分别代表状态,如:state == 0的话,case语句就会进入initall状态,state == 1的话, case语句进入rec_data;依次类推,1、2、3、4这些标号用parameter表示,是通常的写法,代表常数参数,这样也便于修改,状态也比较直观,可以随便...

额济纳旗15932105986: 利用verilog HDL设计一个带同步复位、高电平有效、并且对输入时钟下降沿触发的四分频模块? -
始宝了哥: module d(rst1,rst0,clk,in,out); input rst1,rst0,clk,in; output out; reg out; always@(posedge clk or negedge rst1 or negedge rst0) begin if(~rst1) out<=1; //注意下降沿配copy套2113的条件写法5261 else if(~rst0) out<=0; //注意下降沿配套的条件写法 ...

额济纳旗15932105986: 用Verilog HDL语言设计一个9分频器 -
始宝了哥: N倍奇数分频器(Verilog) 修改参数N和cnt_p,cnt_n的位宽,可以实现奇数N的分频.module N_odd_divider ( input i_clk, input rst_n, output o_clk );parameter N = 9;parameter M = N>>1;// bit_of_N: N_odd的二进制位宽 reg [3:0] cnt_p; //上升...

额济纳旗15932105986: 用Verilog HDL语言设计一个模值可变的计数器?怎样做? -
始宝了哥: 其实很简单的,这个和可以设置初始值的计数器实现方法是一样的.如果你能看懂下面这段代码,相信你肯定能写出一个模值可变的计数器了.module counter7(clk,rst,load,data,cout); input clk,rst,load; input [2:0] data; output reg [2:0] cout; always...

额济纳旗15932105986: 1. 用Verilog HDL的行为描述设计一个带进位输入,输出的1位全加器 -
始宝了哥: 参考代码如下, module add_1bit (a, b, ci, s, co) input a, b, ci; //Ci为上个进位. output reg s, co; //co为当前的进位,s为加结果 always@(*)beginco = (a&b) | (b&ci) | (ci&a); if (ci)s = ! (a^b);elses = (a^b);endendmodule

额济纳旗15932105986: 如何用verilog hdl设计一个产生任意频率的振荡器,谢谢了 -
始宝了哥: 通过一个相位累加器和一个相位---幅度转换器来实现.相位累加器以步进K累加,K称为频率控制字,用来控制输出波形的频率;相位---幅度转换器是将相位累加器输出的相位值转为波形对应的幅度值,简单的实现方式就是做一个查找表,比如要输出正弦波,就将一个周期正弦波进行等间隔采样、量化,存为一个查找表,利用相位累加器的输出对查找表进行寻址就可以了.输出频率 = (fclk/2^N)*K,其中N为相位累加器的位数.

额济纳旗15932105986: 用Verilog HDL语言设计流水灯实验程序 -
始宝了哥: module run_led(clk,rst,led); //module port制 input clk;//system clock 百 input rst;//system reset output [7:0] led; // 8bits led reg [7:0] led;reg [25:0] count;always @ (posedge clk ) beginif(rst || count[25]==1) begincount<=26'b0;endelsecount<=...

额济纳旗15932105986: 用VerilogHDL设计一个FPGA定时器! -
始宝了哥: 首先说明:这很容易.前面说了那么多正弦波整形、PLL什么的,和HDL代码无关啊~ 这个设计无非就是个分频器.从100M的时钟得到其8,16,128分频,占空比50%,用计数器实现即可.你不会还要给你写好代码吧~没那么多时间~

额济纳旗15932105986: 用verilog HDL进行倒计时器的设计
始宝了哥: module de_counter (count, clk, reset); //8位倒计时器 output [7:0] count; input clk, reset; reg [7:0] count; always @ (posedge clk or negedgereset) if (!reset) count = 8'h00; else count &lt;= count - 1'b1; endmodule

额济纳旗15932105986: 用verilog hdl语言设计一个9人表决器,五个人通过 -
始宝了哥: module voter9(pass,vote);output pass;input[8:0] vote;reg[3:0] sum;integer i;reg pass;always @(vote)begin sum=0;for(i=0;i<=8;i=i+1) //for 语句if(vote[i]) sum=sum+1;if(sum>4'b0100) pass=1; //若超过 4 人赞成,则 pass=1else pass=0;end endmodule

额济纳旗15932105986: 怎样用Verilog实现4选1数据选择器 -
始宝了哥: 4选1数据选择器使用两位地址码A1A2产生4个地址信号,由A1A2等于“00”、“01”“10”“11”来选择输出.输入信号:4个数据源d0、d1、d2、d3.两位地址码a[1..0];使能端g.输出信号:输出选择则端y. 真值表如下: 程序代码: ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网