数电算法题,1到100中少了个数,用数字电路找出这个数

也可以做异或(无进位加法)
■网友
第一次根据所有数的二进制的最低位,可以将所有数划分成两个部分,缺少的数自然属于其中少了一个数的一部分再看那一部分数的第二位,自然又会少一个数,以此类推
■网友
单纯的做异或用的资源肯定非常多,考官应该是想考查具体实现怎么少资源,实际工作这种问题很常见,看题目的意思这九十九个数可以顺序输入,只要判断上一个数是不是等于当前数加一就行了,检测到不相等就只道漏哪个数了。
■网友
全部异或起来,再异或100就是结果。
■网友
怎么是再异或100呢?应该是再异或一次1到100
■网友
always @(posedge clk or negedge rst) begin if(!rst) addr \u0026lt;= 7\u0026#39;b0; else addr \u0026lt;= addr + 1\u0026#39;b1;end always @(posedge clk or negedge rst) begin if(!rst) dout_delay1 \u0026lt;= 1\u0026#39;b0; else dout_delay1 \u0026lt;= dout;end assign get_result = !( dout_delay1 ^ dout) ;always @(posedge clk or negedge rst) begin if(!rst) result \u0026lt;= 7\u0026#39;b0; else if(get_result) result \u0026lt;= addr - 1\u0026#39;b1;end 组合逻辑应该没有时序逻辑省资源(不确定,谁综合出来看看^_^),这里假设这些数据按顺序从0地址开始,放在一个SRAM中。
■网友
直接看最低位,相邻异或


    推荐阅读