福师大EDA数字系统设计作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.1、下列标识符哪些是合法的,哪些是错误的?
Count,8sum,a*b,_data,wait,initial,$latch
合法的:Count,,wait,initial
错误的:8sum,a*b,_data,,$latch
5.2、下列数字的表示是否正确?
6’d18,’Bx0,5’box110,’da30,10’d2,’hzF
正确的:’Bx0,’da30,’hzF
错误的:6’d18,5’box110,10’d2,
6.3用行为语句设计一个8位计数器,每次在时钟的上升沿,计数器加1,当计数器溢出时,自动从零开始重新计数。

计数器有同步复位端。

Moudule(out,data,load,reset,clk);
output[7:0] out;
input[7:0] data;
input load, clk, reset;
reg[7:0]out;
always @(posedge clk)
begin
if(!reset)out=8"h00;
else if(load)out=data;
else
out=out+1;
end
endmodule
6.4设计一个4位移位寄存器
module e(out_data, in_data, clk, clr);
output[3: 0] out_data;
input [3: 0]in_data;
input clk,clr;
reg[3: 0] out_data
always @(posedge clk or posedge clr)
begin
if(clr) out_data <=0;
end
endmodule
7.4试编写同步模5计数器程序,有进位输出和异步复位端。

module test_cnts(clk, reset, car, out);
input clk,reset;
output car,out;
reg[2:0]cnt;
reg car;
wire[2:0]out;
assign out=cnt;
always@(posedge clk or negedge reset) begin
if(!reset)begin
cntく=3’b000;
car<=0;
end
else begin
if(cnt==3’b100)begin
car<=3’b001;
cnt<=3'b000:
end
else begin
cntく=cnt+3’b001;
car<=3’b000;
end
end
end
end module
7.5编写4位串并转换程序
reg[7:0] data;
reg[2:0] cnt;
always@(posedge clk or posedgerst)
if(rst)
reg &lt;= 0;
else
reg &lt;= {reg[7:0],din};
always@(posedge clk or posedge rst) if(rst)
cnt &lt;= 0;
else
if(din_valid)
if(cnt == 7)
cnt &lt;= 0;
else
cnt &lt;= cnt +1;
else
cnt &lt;= cnt;
always@(posedge clk or posedgerst) if(rst)
dout &lt;= 0;
dout_en &lt;= 0;
else
if(cnt == 7)
dout &lt;= data;
dout_en &lt;= 1;
else
dout &lt;= 0;
dout_en &lt;= 0;。

相关文档
最新文档