原创 【博客大赛】fpga基础知识

2012-5-8 10:47 2021 4 5 分类: FPGA/CPLD

常量:

   在Verilog HDL中,整型常量即整常数有以下四种进制表示形式:
1) 二进制整数(b或B)
2) 十进制整数(d或D)
3) 十六进制整数(h或H)
4) 八进制整数(o或O)

8'b10101100 //位宽为8的数的二进制表示, 'b表示二进制
8'ha2 //位宽为8的数的十六进制,'h表示十六进制。

x和z值:x代表不定值,z代表高阻值。一个x可以用来定义十六进制数的四位二进制数的状态,八进制数的三位,二进制数的一位。z的表示方式同x类似。z还有一种表达方式是可以写作?。在使用case表达式时建议使用这种写法,以提高程序的可读性。见下例:
4'b10x0 //位宽为4的二进制数从低位数起第二位为不定值
4'b101z //位宽为4的二进制数从低位数起第一位为高阻值
12'dz //位宽为12的十进制数其值为高阻值(第一种表达方式)
12'd? //位宽为12的十进制数其值为高阻值(第二种表达方式)
8'h4x //位宽为8的十六进制数其低四位值为不定值

赋值:

非阻塞(Non_Blocking)赋值方式( 如 b <= a; )

always @( posedge clk )
begin
b<=a;
c<=b;
end//此处clk来一个上升沿此时b=a;再来一个上升沿c=b

阻塞赋值方式

always @(posedge clk)
begin
b=a;
c=b;
end  clk来了一个上升沿,b=a,c=b

always语句

reg[7:0] counter;
reg tick;
always @(posedge areg)
begin
tick = ~tick;
counter = counter + 1;
end

always是要等到areg的上升沿才做里面的事情

一个模块中可以有多个always块,它们都是并行运行的

 

 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户236480 2012-5-11 10:05

是基础,不过应该还有更多要注意的地方!!
相关推荐阅读
用户157314 2010-12-25 09:33
示波器之李沙育图形
      一个基准信号已知频率相位,一个待测信号,在双踪示波器中进行波型叠加,,调整基准信号源,在示波器上的出某种特殊图形,可以表示待测信号与已知信号也就是基准信号源之间的频率相位关系,从而计算出被...
用户157314 2010-02-04 09:48
BF532相关寄存器设置
 外部中断设置:*pFIO_INEN |= BIT( PF0_P );    //to U601 EPIC6,Flag Input Enable Register[0xFFC00740]   *pFI...
用户157314 2009-12-29 08:40
STM32 USART发送数据时如何使用TXE和TC标志
    在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器,另一个是程序看不到的移位寄存器,对应USART数据发送有两个标志,一个是TXE=发送数据寄存器空,另一个是TC=发...
用户157314 2009-12-17 15:59
STM32通用程序编写
1.配置某位引脚输出  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7   GPIO_InitStructure.GPIO_Mode = G...
用户157314 2009-12-17 14:05
NVIC设置
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct){  u32 tmppriority = 0x00, tmpreg = 0x00, tmpmask =...
EE直播间
更多
我要评论
1
4
关闭 站长推荐上一条 /3 下一条