|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
verilog hdl |
作者:cottontang 栏目:IC设计 |
我用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 于 2006/4/1 10:24:00 发布:
多看书吧,多体会,不要着急。 这样的代码我们称之为garbage. |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |