出几道数字设计的小题目
有的人觉得数字电路简单,模拟电路难。的确,模拟电路确实难。但是数字设计也绝对不可能简单,说它简单的人估计不太懂数字设计。学习数字设计也和学习编程一样,一步一个脚印,不可急功近利。一向觉得要做一个数字设计的高手,首先,脑子里面一般都会有一个现成的verilog或者vhdl编译器,写出了代码,就能大致想清楚其电路构造。有的人设计出来了,却不知道其原理,那是设计不好的。
比如,如下代码:
input rst,clk;
input[3:0]i1;
input[3:0]i2;
...
reg[4:0]r1;
always@(negedge clk or negedge rst)
begin
if(!rst)
r1<=5'b0000;
else
r1<={1'b0,i1}+{1'b0,i2}+5'b0001;
end
你能不能马上在脑子里把它编译出来吗?如果这都办不到,那么只说明基本功不扎实,还需要继续磨练。
[ 本帖最后由 cjaizss 于 2009-1-3 21:34 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
出一道题:
一般数字设计的时候,很喜欢使用翻转信号(T触发器)以便模块间传递事件信号。
因为它很简单:
....
t<=~t;
即可
现在,想把这样一个翻转信号传递给cpu的中断,每一次翻转都代表一个事件。
假设该cpu不支持双沿中断,但支持上升沿中断,且需要一定脉冲宽度,该怎么做呢?
假设module top是顶层模块,下层模块传来一个翻转信号t;
输出到cpu的中断信号是int_cpu;
复制代码
以上你可以马上画出其原理图吗?
那么以下呢?
复制代码
再试着画一画两者的波形图呢?
思考题:你可以设计出一个网表文件格式供数字设计使用吗?当然如果你还不知道什么是网表的话.......那么数字设计还一点门都没入,再继续学吧
[ 本帖最后由 cjaizss 于 2009-1-3 21:39 编辑 ]
数字设计还一点门都没入。高深啊!
难者不会,会者不难。如果懂了,其实没那么神秘。如果想深入学习数字设计,以上几个是最简单的问题,除了那个网表。
我之所以说网表比较难一些,是因为既需要对数字电路足够了解,也要对软件设计足够了解
博士会考虑用云进行计算
贴了这么多天,不知道有没有人做.
本来想再贴几个难度再高一点的(其实网表文件格式设计是比较难的),但看到大家的反应,暂时算了,呵呵.
这主要是给刚入门的电子工程师做的.
但版内的IC设计人员虽然也是ee的一类,但数字设计是份内工作,这些未免简单了一点