Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
các anh chị cho em hỏi làm sao để tạo được 1 tập 32 thanh ghi 32bits (register files) trong verilog ?và cả bộ cách tạo bộ nhớ (data memory) nữa.ai biết xin chỉ giúp em với.
sơ đồ đây ạh
[IMG][/IMG]
các anh chị cho em hỏi làm sao để tạo được 1 tập 32 thanh ghi 32bits (register files) trong verilog ?và cả bộ cách tạo bộ nhớ (data memory) nữa.ai biết xin chỉ giúp em với.
sơ đồ đây ạh
[IMG][/IMG]
Về tạo register file, có thể dùng 1 trong 2 cách sau
- Bạn có thể chỉ dùng code VHDL/Verilog
- Nếu viết để chạy trên FPGA, bạn có thể dùng Dual-port RAM (Ram có 2 cổng)
Cách 1 dùng HDL để viết:
Sau khi khai báo các cổng input/output, để khai báo một dãy các thanh ghi:
- Verilog:
reg [31:00] register_file [0:REG_FILE_SIZE-1];
- VHDL :
type REG_FILE is array (0 to REG_FILE_SIZE-1) of std_logic_vector(31 downto 0);
signal register_file : REG_FILE;
Cách 2 dùng dual-port RAM (cách này không nên dùng trừ phi rất thiếu Flipflop. Nếu như REG_FILE_SIZE = 32 thì sơ sơ mất hết 1000 (32x32bit) Flipflop rồi. Dùng dual-port RAM thì sẽ gặp khó khăn về timing cũng như khi port từ FPGA này sang FPGA khác.
- Về tạo memory: Xilinx và Altera đều có code mẫu (Xilinx: click icon hình bóng đèn, Altera: chuột phải, insert template)
Cho em hỏi làm thế nào để tạo xung clock đồng bộ trong mô phỏng đc ah? trước giờ trên trường em chỉ sử dụng Quartus II thôi chứ chưa tìm hiểu các phần mềm khác.thầy nói không cần xét xung clock nhg nếu vậy lỡ lệnh trước chưa thực hiện xong thì PC đã đc cập nhật, lệnh kế tiếp lại nhảy vào thì làm sao ah?
hi,thanks a đã reply.em muốn hỏi là khi mô phỏng thì mình đưa xung clock vào như thế nào?Em nghĩ nếu ko có clock để đồng bộ thì lệnh sau sẽ chèn lên lệnh trước (do PC cập nhật nhanh).
Mạch này chắc chắn phải có clock.
Trường hợp 1: không sử dụng pipeline (tạm dịch là đường ống), sau khi khi PC load giá trị PC0 thì sẽ mất một khoảng thời gian để thực hiện lệnh, khoảng thời gian này gọi là trễ. Trong khoảng thời gian này PC ko được thay đổi giá trị. Trong hệ thống đồng bộ, trễ của các mạch tổ hợp giữa 2 flip-flop phải nhỏ hơn chu kì clock.
Trường hợp 2: sử dụng pipeline, để chạy hiệu quả hơn, giữa các stage (Sau Instruction memory, Register File, ALU), người ta dùng register. Với các register này, trễ sẽ nhỏ hơn và mạch chạy nhanh hơn. Trong thiết kế này, tương tự như dây chuyền sản xuất, mỗi lệnh sẽ được thực hiện trong nhiều stage, mỗi stage sẽ thực hiện 1 phần của 1 lênh trong 1 chu kì. http://en.wikipedia.org/wiki/Classic_RISC_pipeline
Khi mô phỏng, tạo clock:
always@(*)
#5 clk <= ~ clk;
E có 1 laptop bị hỏng màn hình, e tháo ra thì thấy nó có 4 lớp , lớp ngoài cùng là 1 lớp nhựa rất mỏng màu hơi đen ( chắc là 1 loại film dán), tiếp theo là 1 lớp thủy tinh bị vỡ (màu đen) , đến 1 lớp thủy tinh trắng ( lớp này có...
nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
Comment