零基础学FPGA(六)今天讲习题
时间:02-25
来源:互联网
点击:
习题呢,来自夏雨闻老师的那本教材,就挑几个感觉自己做着有点难度的写写吧
这个题呢刚开始我是没看明白,记得书上只讲了我们习惯上的用法,这种用法我是没见过,问了下别人才知道,Verilog中一般是左高右低。第一个没问题,第二个,input [0:2] IP,习惯上我们这样写 input [2:0] IP,这里两个是等价的,即表示第0 .1 .2 三位。第三个,wire [16:23] A,也是,左高右低,表示第16.17.....22. 23位,左高右低就这样记就好了。
首先FF呢用二进制表示就是1111_1111,因为是2‘hFF,即取前两位,即0000_0011,因此,答案1,2正确。
这道题值得注意的是always的这种结构,可以有两个@语句,这道题本身不难,看下答案,知道有这么一回事就好。
这道题比较有意思,这里I和J是整型,输出I=-1没问题。-1也是整数,输出J=0也没问题
这里A是3位寄存器变量,值为000,与-1相减,-1的补码为1111,所以A-1=000+1111,即1111,但这里A是3位的,所以取后三位,所以呢,A就为111即7.同理输出B为8.
这个题要注意位运算符和逻辑运算符的区别,像&是位运算符,&&是逻辑运算符。所以第一题是按位与,答案应该是4’b1000,第二题是按位取反,答案是4‘b0011,第三题是逻辑运算,4'b1011是逻辑1,前面一个非号,即左边是逻辑0,同理,右边是逻辑1,所以答案应该是1'b1,下面的题也都类似,这里就先不说了。
这个题与上面提到过的那个题,类似,主要是注意寄存器变量的位数就好了,从低位取起,再按照输出类型确定输出。
这个题倒不难,但是很容易犯错,注意默认位数为32位就好了
题目不多,尽量把每个题目做精才是王道!
这个题呢刚开始我是没看明白,记得书上只讲了我们习惯上的用法,这种用法我是没见过,问了下别人才知道,Verilog中一般是左高右低。第一个没问题,第二个,input [0:2] IP,习惯上我们这样写 input [2:0] IP,这里两个是等价的,即表示第0 .1 .2 三位。第三个,wire [16:23] A,也是,左高右低,表示第16.17.....22. 23位,左高右低就这样记就好了。
首先FF呢用二进制表示就是1111_1111,因为是2‘hFF,即取前两位,即0000_0011,因此,答案1,2正确。
这道题值得注意的是always的这种结构,可以有两个@语句,这道题本身不难,看下答案,知道有这么一回事就好。
这道题比较有意思,这里I和J是整型,输出I=-1没问题。-1也是整数,输出J=0也没问题
这里A是3位寄存器变量,值为000,与-1相减,-1的补码为1111,所以A-1=000+1111,即1111,但这里A是3位的,所以取后三位,所以呢,A就为111即7.同理输出B为8.
这个题要注意位运算符和逻辑运算符的区别,像&是位运算符,&&是逻辑运算符。所以第一题是按位与,答案应该是4’b1000,第二题是按位取反,答案是4‘b0011,第三题是逻辑运算,4'b1011是逻辑1,前面一个非号,即左边是逻辑0,同理,右边是逻辑1,所以答案应该是1'b1,下面的题也都类似,这里就先不说了。
这个题与上面提到过的那个题,类似,主要是注意寄存器变量的位数就好了,从低位取起,再按照输出类型确定输出。
这个题倒不难,但是很容易犯错,注意默认位数为32位就好了
题目不多,尽量把每个题目做精才是王道!
Verilog 相关文章:
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)