打印
[Verilog HDL]

Verilog的问题

[复制链接]
1443|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
houjiakai|  楼主 | 2013-12-3 14:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
gaochy1126| | 2013-12-3 14:05 | 只看该作者
总结下几种assign用法:
1.作为信号量输出,通过寄存器连续赋值
output [3:0]oLED;

//internal signal

reg [3:0]sr_LED; //用独热码表示LED亮灯位置。

assign  oLED[3:0] = ~ sr_LED[3:0]; //向LED灯接口输出信号。
2.作为信号量输出,通过寄存器拼接数据位实现。

output [15: 0] oSI_DATA;

//internal signal
  reg [ 3: 0] s_HEX;
  reg [ 7: 0] s_SEGBINARY; // s_SEGBINARY[2] should be the DOT
  reg [ 3: 0] s_SEG_SEL;

assign oSI_DATA = {iLED_SEL,s_SEG_SEL,s_SEGBINARY};

使用特权

评论回复
板凳
gaochy1126| | 2013-12-3 14:05 | 只看该作者
3.作为信号量输出,通过判断条件,赋值给信号


output[ 1: 0] oSEG_STATE;
output        oCP_PLUSE;
wire s_CNTEQCYCLE;

parameter PARAM_7SEG_CYCLE = 32'd2500000;

reg [ 1: 0] sr_SEG_STATE;
reg [31: 0] sr_cnt;
reg         sr_cp_pluse;  
assign oSEG_STATE = sr_SEG_STATE;
assign oCP_PLUSE = sr_cp_pluse;

assign s_CNTEQCYCLE = ( sr_cnt == PARAM_7SEG_CYCLE ) ? 1 : 0;

使用特权

评论回复
地板
gaochy1126| | 2013-12-3 14:05 | 只看该作者
4.作为输出信号量,通过输入信号量赋值给输出,同样可以输入信号量和寄存器组合逻辑,赋值给输出信号量。
input        iCLK50M;
input        iCP_PULSE;
input[15:0]  iSI_DATA;
output       oSI;
output       oCP;
reg [ 3: 0] sr_cnt;
reg [15: 0] sr_si_data;
reg sr_cp;
reg sr_en;
assign oSI = sr_si_data[15];
assign oCP = sr_en & iCLK50M;

使用特权

评论回复
5
gaochy1126| | 2013-12-3 14:05 | 只看该作者
一、引入语法的概念
 1、只有寄存器类型的信号才可以在always和initial 语句中进行赋值,类型定义通过reg语句实现。
  2、always 语句是一直重复执行,由敏感表(always 语句括号内的变量)中的变量触发。
  3、always 语句从0 时刻开始。
  4、在begin 和end 之间的语句是顺序执行,属于串行语句。

使用特权

评论回复
6
gaochy1126| | 2013-12-3 14:06 | 只看该作者
assign 用于描述组合逻辑,用阻塞赋值,但assign语句是并行执行,(说明:阻塞赋值串行操作是局限于在behavior structual 描述内部,也就是指在initial and always block内部。)
所有的assign和always是并行执行的。
对assign之后不能加块,实现组合逻辑只能用逐句的使用assign 组合逻辑,如果不考虑门的延时的话当然可以理解为瞬时执行的,因此没有并行和顺序之分,并行和顺序是针对时序逻辑来说的。值得注意的是所有的时序块都是并行执行的。initial块只在信号进入模块后执行1次而always块是由敏感事件作为中断来触发执行的。
assign 用于连续赋值语句,if-else用于RTL级描述中,被赋值的变量都是reg类型。reg类型赋值分blocked和nonblocked,即=和<=,不需要再使用assign。

使用特权

评论回复
7
happyming0809| | 2013-12-5 11:16 | 只看该作者
版主说得真的真好,很全面。
我从硬件的角度看,其实assign就是一根线,你想那个信号跟那个信号相连就用它

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

191

主题

5975

帖子

5

粉丝