登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

verilog hdl

作者:cottontang 栏目:IC设计
verilog hdl
我用verilog hdl写一个编码程序,可是我怎么都做不出来:

从引角datain有数据输入,数据没到达时为高电平,到达一个码元后有一个低电平,这个码元传完后会变为高电平,

我现在写的程序是datain为下降沿时灯亮(led[0]接灯),否则灯不亮,下面这样写为何不可呢?





MODULE decode(datain,clock,SPEAKER,led,xian,digien);
//***************************************************
//端口声明
input datain;
input clock;

OUTPUT SPEAKER;
OUTPUT [11:0]led;
OUTPUT [3:0]xian; //用于CD4511的输入
OUTPUT [7:0]digien; //数码显示使能端
//********************************************************
//********************************************************
//变量数据类型说明
integer s1; //用于计算脉冲数
integer diginum;
reg addctrl;
reg [3:0]xian;
reg [7:0]divf;//分频变量
reg [11:0]bitcheck;//位判断,并用于暂时保存12个码字
reg [11:0]twbit;//存放一个码组;
reg [4:0]uptodwn; //下降沿标志
reg [7:0]digien;

reg [2:0]present, nxstate ; //定义保存状态的中间变量
parameter st0 = 0,    //定义各种状态
    st1 = 1,
    st2 = 2,
    st3 = 3;
reg SPEAKER;  
reg sel;

reg [11:0]led;
reg [11:0]tdigi; //用于存放12码字

//********************************************************
//变量初始化
initial
begin
s1 = 0;
addctrl = 0;  //默认不计算脉冲数
diginum = 0;
twbit = 12'b000000000000;
bitcheck = 12'b000000000000;
led  = 12'b000000000000;
digien = 8'b11111111;
end

//************************************************************
always @(negedge datain)//有数据到来时,启动计数器
begin
  led[0] = 1;
  
end

always @(posedge datain) //上升沿时就可判断所接收到的码元
led[0] = 0;


endMODULE


2楼: >>参与讨论
allok
多看书吧,多体会,不要着急。
这样的代码我们称之为garbage.

参与讨论
昵称:
讨论内容:
 
 
相关帖子
VCO仿真问题
ULN2003奇怪使用,请大家指点一下
三极管的设计和工艺如何保证beta值在较大范围内保持近似恒定?
请问一个数字电路问题
如何成为IC设计高手
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号